SQL - SUBCONSULTA CON GROUP BY

 
Vista:

SUBCONSULTA CON GROUP BY

Publicado por cesar (1 intervención) el 18/03/2008 08:59:19
AGRADECERIA MUCHO QUE ALGUIEN ME AYUDE.

Intento sustituir un valor numerico ( 1615) por una subconsulta, peró el GROUP BY de la consulta aparentemente afecta a la subconsulta.

1615 es el resultado del COUNT antes de agrupar, por lo que si la agrupacion afecta la subconsulta el resultado no es correcto.


ASI FUNCIONA, PERO TENGO QUE SUSTITUIR CADA VEZ EL 1615 POR EL VALOR QUE TOCA

SELECT COUNT(*)AS NºENVIAMENTS,
AVG(DATEDIFF([DAY], EXPEDICIONS.DATA, CABEALBV.FECHA) + 0.0) AS Promig_Enviaments,
((COUNT(*))/1615.0*100) AS "%ENVIOS"

FROM EXPEDICIONS INNER JOIN
ALBARANS_EXPEDICIO ON EXPEDICIONS.EXPEDICIO = ALBARANS_EXPEDICIO.EXPEDICIO INNER JOIN
CABEALBV ON ALBARANS_EXPEDICIO.ALBARA = CABEALBV.IDALBV

WHERE (CABEALBV.FECHA BETWEEN CONVERT(DATETIME, '2008-01-01 00:00:00', 102)AND CURRENT_TIMESTAMP)

GROUP BY (DATEDIFF([DAY], EXPEDICIONS.DATA, CABEALBV.FECHA) + 0.0)

ORDER BY (DATEDIFF([DAY], EXPEDICIONS.DATA, CABEALBV.FECHA) + 0.0)

--------------------
LO INTENTO ASI PERO NO FUNCIONA

SELECT COUNT(*)AS NºENVIAMENTS,
AVG(DATEDIFF([DAY], EXPEDICIONS.DATA, CABEALBV.FECHA) + 0.0) AS Promig_Enviaments,
((COUNT(*))/
(
SELECT COUNT(*) AS ENVIOS
FROM EXPEDICIONS INNER JOIN
ALBARANS_EXPEDICIO ON EXPEDICIONS.EXPEDICIO = ALBARANS_EXPEDICIO.EXPEDICIO INNER JOIN
CABEALBV ON ALBARANS_EXPEDICIO.ALBARA = CABEALBV.IDALBV

)

*100)AS "%ENVIOS"

FROM EXPEDICIONS INNER JOIN
ALBARANS_EXPEDICIO ON EXPEDICIONS.EXPEDICIO = ALBARANS_EXPEDICIO.EXPEDICIO INNER JOIN
CABEALBV ON ALBARANS_EXPEDICIO.ALBARA = CABEALBV.IDALBV

WHERE (CABEALBV.FECHA BETWEEN CONVERT(DATETIME, '2008-01-01 00:00:00', 102)AND CURRENT_TIMESTAMP)

GROUP BY (DATEDIFF([DAY], EXPEDICIONS.DATA, CABEALBV.FECHA) + 0.0)

ORDER BY (DATEDIFF([DAY], EXPEDICIONS.DATA, CABEALBV.FECHA) + 0.0)
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder