Hacía tiempo que no entraba.
No sé como plantear una consulta que necesito trabajando en Sql Server (T-SQL)
El enunciado de la consulta sería:
- Sabiendo el año, el trimestre y el ID de un cliente, sacar de la tabla ALBARANES_C, la suma total de litros para cada mes del trimestre y año dados, y para el cliente demandado sea la suma de cada mes 0 ó mayor de 0.
Es decir si:
@trimestre = 4
@anio = '2007'
@cliente = 4724
El resultado deseado de la consulta debería ser:
FECHA CANTIDAD
=================
Octubre 0,00
Noviembre 150,54
Diciembre 50,40
Yo tengo planteada para ahora la siguiente SQL:
Código:
El resultado que me da es este:DECLARE @trimestre INT, @anio NVARCHAR(4), @cliente INT SET @trimestre = 4 SET @anio = '2007' SET @cliente = 4724 SELECT DATENAME(M, @anio + CONVERT(NVARCHAR, MONTH(fecha)) + '01') AS Fecha, SUM(ISNULL(litros, 0)) AS Cantidad FROM ALBARANES_C WHERE cliente = @cliente AND (YEAR(ALBARANES_C.fecha) = @anio AND fecha BETWEEN (dbo.func_darTrimestreFechaIni(@trimestre, @anio)) AND (dbo.func_darTrimestreFechaFin(@trimestre, @anio))) GROUP BY MONTH(fecha) ORDER BY MONTH(fecha)
Código:
Es decir que como, para ese cliente, en el mes de octubre no se generaron registros en esta tabla de ALBARANES_C, no me saca la línea deseada de ese mes.FECHA CANTIDAD ================= Noviembre 150.54 Diciembre 50.40
¿Cómo podría plantear la consulta para obtener el resultado deseado que planteo arriba?