
11/03/2008, 15:17
|
 | Moderador criollo | | Fecha de Ingreso: noviembre-2007 Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años, 2 meses Puntos: 2658 | |
Re: Ayuda con GROUP BY Algo así:
Código:
SELECT
Fecha, Origen, Destino,
Barra, Producto, QDE,
SUM(SumCantidad * SumPrecio) AS Importe
FROM
(SELECT A.env_fecha AS Fecha,
C.tie_name AS Origen,
D.tie_name AS Destino,
SUBSTR(B.envd_barra,9,3) AS Barra,
E.prd_name AS Producto,
SUM(B.envd_cantidad) AS QDE,
SUM(B.envd_cantidad) SumCantidad,
AVG(B.envd_precio) SumPrecio
FROM transfenvios A, transfenviodetalle B,
tiendas C, tiendas D, productos E
WHERE env_origen = 1
AND (env_fecha BETWEEN '2008-03-04' '2008-03-10')
AND A.env_origen = C.tie_code
AND A.env_destino = D.tie_code
AND A.env_code = B.envd_code
AND B.envd_barra = E.prd_code
GROUP BY Destino, Barra) AS T1
GROUP BY Destino, Barra;
El tema es que los componentes se vayan resolviendo por etapas.
El doble agrupamiento es necesario, porque hay funciones agregadas en los dos niveles.
Además, el >= AND <= se resuelve por el BETWEEN, que es la operación que en realidad realiza. |