Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 17-01-2022
Avatar de fjcg02
[fjcg02] fjcg02 is offline
Miembro Premium
 
Registrado: dic 2003
Ubicación: Zamudio
Posts: 1.410
Poder: 22
fjcg02 Va camino a la fama
Hola,

añade esto

IIF ( (detalleventa.costo * alicuotas.porcent) > 0

al group by

Saludos
__________________
Cuando los grillos cantan, es que es de noche - viejo proverbio chino -
Responder Con Cita
  #2  
Antiguo 18-01-2022
amadis amadis is offline
Miembro
 
Registrado: may 2005
Ubicación: San José, Colón, Entre Ríos, Argentina
Posts: 315
Poder: 20
amadis Va por buen camino
Cita:
Empezado por fjcg02 Ver Mensaje
Hola,

añade esto

IIF ( (detalleventa.costo * alicuotas.porcent) > 0

al group by

Saludos
Si agrego

Código SQL [-]
IIF ( (detalleventa.costo * alicuotas.porcent) > 0,(sum(detalleventa.total)/sum(detalleventa.cant))/(detalleventa.costo *  alicuotas.porcent), 0) as Margen

me da error del AS, le saco el as margen y da error

Cannot use an aggregate or window function in a GROUP BY clause

Pero no entiendo que agregarle IIF al group pueda ser la solucion.

Lo del case parece acercarse

Pero necesito agrupar el resultado por los campos que tengo en group by
Responder Con Cita
  #3  
Antiguo 18-01-2022
Avatar de kuan-yiu
[kuan-yiu] kuan-yiu is offline
Miembro Premium
 
Registrado: jun 2006
Ubicación: Galicia. España.
Posts: 1.017
Poder: 19
kuan-yiu Va camino a la fama
Si te pide otro campo agregado es que lo necesita. No hay más vuelta de rosca.

Añade al group by solo: ' (detalleventa.costo * alicuotas.porcent) ', con eso debería funcionar y luego haz una select de tu select para agrupar el resultado como tu quieres.
Tendrás que probar si tienes una equivalencia matemática con el resultado, porque esto parece un problema de mates no de SQL. O tendrás que tratar de calcularlo de otro modo. Siempre hay más de un sistema.

También puedes probar a construir primero una tabla con los cálculos que necesitas (tupla a tupla), sin agrupar y luego sobre esa select hacer otra agrupada:

Código SQL [-]
select sum(uno), sum(dos), tres, cuatro
from (
select tusCamposSinSumatoriosPeroConMultiplicacionesYcondiciones_UnoDosTresCuatro from tus tablas
where tuCondicion
) group by tres, cuatro

Última edición por kuan-yiu fecha: 18-01-2022 a las 13:47:59.
Responder Con Cita
  #4  
Antiguo 19-01-2022
amadis amadis is offline
Miembro
 
Registrado: may 2005
Ubicación: San José, Colón, Entre Ríos, Argentina
Posts: 315
Poder: 20
amadis Va por buen camino
No se me había ocurrido un Selec del otro Select, eso ayudó. Gracias a todos
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Consulta con Group By jars SQL 2 12-11-2012 13:47:02
Consulta con Group By y Max gluglu SQL 3 21-03-2012 15:17:21
Consulta con Group By SQL DasGrun SQL 2 22-01-2010 16:28:02
Consulta con group by y min zvf SQL 2 21-04-2008 20:13:25
Consulta Con Group By VRO SQL 9 30-08-2004 18:06:07


La franja horaria es GMT +2. Ahora son las 09:21:04.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi