Ver Mensaje Individual
  #4 (permalink)  
Antiguo 11/03/2008, 15:17
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 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.