Ayuda con sentencia SQL

15/02/2011 - 16:59 por Ariel M. | Informe spam
Buenos dias a todos (los que quedamos), hacia un tiempo que no leía el
foro, pero con sorpresa veo que todavía quedamos algunos por aca.

Tengo un problema con una consulta sobre una tabla solamente. La
consulta es la siguiente (resumida para que sea clara):

SELECT MONTH(FECHA_FACT) AS PERIODO,
(SELECT IIF(SUM(TOTAL) IS NULL,0,SUM(TOTAL)) FROM COMPRAS WHERE
(YEAR(FECHA_FACT)= 2011 AND ID_CLASE = 1)) AS TOTAL_FT,
(SELECT IIF(SUM(TOTAL) IS NULL,0,SUM(TOTAL)) FROM COMPRAS WHERE
(YEAR(FECHA_FACT)= 2011 AND ID_CLASE = 2)) AS TOTAL_NC,
(SELECT IIF(SUM(TOTAL) IS NULL,0,SUM(TOTAL)) FROM COMPRAS WHERE
(YEAR(FECHA_FACT)= 2011 AND ID_CLASE = 3)) AS TOTAL_ND
FROM COMPRAS
WHERE YEAR(FECHA_FACT)= 2011
GROUP BY MONTH(FECHA_FACT)
ORDER BY MONTH(FECHA_FACT);

La idea de la consulta es que me sume en un campo el total de las
facturas, en otro el total de las Notas de crédito y en otro el total de
las Notas de débito (para hacer cálculos), del año que le paso por
parámetro (en este caso 2011), y agrupadas por mes. El asunto es que me
repite los valores en todos los meses que encuentra, quedando algo asi

PERIODO TOTAL_FT TOTAL_NC TOTAL_ND

1 2782,049 224,1233 343
2 2782,049 224,1233 343

Quisiera saber si alguien me puede indicar que me falta en la consulta.
La base de datos es Access 2003.

Gracias de antemano a la gente que con buena voluntad continua
respondiendo las consultas que realizamos

Saludos cordiales
Ariel
 

Leer las respuestas

#1 Leonardo Azpurua
15/02/2011 - 22:36 | Informe spam
"Ariel M." escribió en el mensaje
news:ije7so$v50$
Buenos dias a todos (los que quedamos), hacia un tiempo que no leía
el foro, pero con sorpresa veo que todavía quedamos algunos por aca.

Tengo un problema con una consulta sobre una tabla solamente. La
consulta es la siguiente (resumida para que sea clara):

SELECT MONTH(FECHA_FACT) AS PERIODO,
(SELECT IIF(SUM(TOTAL) IS NULL,0,SUM(TOTAL)) FROM COMPRAS WHERE
(YEAR(FECHA_FACT)= 2011 AND ID_CLASE = 1)) AS TOTAL_FT,
(SELECT IIF(SUM(TOTAL) IS NULL,0,SUM(TOTAL)) FROM COMPRAS WHERE
(YEAR(FECHA_FACT)= 2011 AND ID_CLASE = 2)) AS TOTAL_NC,
(SELECT IIF(SUM(TOTAL) IS NULL,0,SUM(TOTAL)) FROM COMPRAS WHERE
(YEAR(FECHA_FACT)= 2011 AND ID_CLASE = 3)) AS TOTAL_ND
FROM COMPRAS
WHERE YEAR(FECHA_FACT)= 2011
GROUP BY MONTH(FECHA_FACT)
ORDER BY MONTH(FECHA_FACT);

La idea de la consulta es que me sume en un campo el total de las
facturas, en otro el total de las Notas de crédito y en otro el
total de las Notas de débito (para hacer cálculos), del año que le
paso por parámetro (en este caso 2011), y agrupadas por mes. El
asunto es que me repite los valores en todos los meses que
encuentra, quedando algo asi

PERIODO TOTAL_FT TOTAL_NC TOTAL_ND

1 2782,049 224,1233 343
2 2782,049 224,1233 343

Quisiera saber si alguien me puede indicar que me falta en la
consulta.
La base de datos es Access 2003.

Gracias de antemano a la gente que con buena voluntad continua
respondiendo las consultas que realizamos




Hola,

Tengo tiempo que no trabajo en Access, pero imagino que puede ser algo
como:

SELECT MONTH(FECHA_FACT) AS PERIODO,
SUM(IIF(ID_CLASE = 1, IIF(TOTAL IS NULL, 0, TOTAL), 0)) AS TOTAL_FT,
SUM(IIF(ID_CLASE = 2, IIF(TOTAL IS NULL, 0, TOTAL), 0)) AS TOTAL_NC,
SUM(IIF(ID_CLASE = 2, IIF(TOTAL IS NULL, 0, TOTAL), 0)) AS TOTAL_ND
FROM COMPRAS
WHERE YEAR(FECHA_FACT)= 2011
GROUP BY MONTH(FECHA_FACT)
ORDER BY MONTH(FECHA_FACT);

Salud!

Preguntas similares