Acumulado D,M,A

19/03/2005 - 23:02 por Ducky | Informe spam
Hola,

Necesito obtener los acumulados del DIA, MES y AÑO.

Con el siguiente SELECT ya obtengo la clave, descripcion y acumulado del
dia.

Pero no tengo idea como agregar la columna del mes y del año.

SELECT Catalogo.Cuenta, Catalogo.Descripcion, SUM(Movimientos.cantidad) AS
Expr1
FROM Codigos RIGHT OUTER JOIN
Movimientos ON Movimientos.Cuenta = Catalogo.Cuenta
WHERE (Movimientos.fec_mov >= CONVERT(varchar(8), GETDATE(), 112)) AND
(Movimientos.fec_mov < CONVERT(varchar(8), GETDATE() + 1, 112))
GROUP BY Catalogo.Cuenta, Catalogo.Descripcion


cambiando el Where por el siguiente obtengo el mes
WHERE (FECHA_lla >= CONVERT(varchar(6), GETDATE(), 112) + '01') AND
(FECHA_lla < CONVERT(varchar(6), DATEADD(mm, 1, GETDATE()), 112))

cambiando el Where por el siguiente obtengo el año:
WHERE (FECHA_lla >= CONVERT(varchar(4), GETDATE(), 112) + '0101') AND
(FECHA_lla < CONVERT(varchar(4), DATEADD(yyyy, 1, GETDATE()), 112))

Las columna que necesito son:
Clave, Descripcion, Dia, Mes, Año


Aprecio mucho cualquier informacion relacionada,
 

Leer las respuestas

#1 Alejandro Mesa
20/03/2005 - 02:57 | Informe spam
Trata:

SELECT
Catalogo.Cuenta,
Catalogo.Descripcion,
SUM(
case
when (Movimientos.fec_mov >= CONVERT(varchar(8), GETDATE(), 112))
AND (Movimientos.fec_mov < dateadd(day, 1, CONVERT(varchar(8), GETDATE(),
112)))
then Movimientos.cantidad end
) AS Expr1,
SUM(
case when (FECHA_lla >= CONVERT(varchar(6), GETDATE(), 112) + '01')
AND (FECHA_lla < dateadd(month, 1, CONVERT(varchar(6), GETDATE(), 112) +
'01'))
then Movimientos.cantidad end
) AS Expr2,
SUM(Movimientos.cantidad) AS Expr3
FROM
Codigos
RIGHT OUTER JOIN
Movimientos
ON Movimientos.Cuenta = Catalogo.Cuenta
WHERE
(FECHA_lla >= ltrim(year(getdate())) + '0101'
AND (FECHA_lla < ltrim(year(getdate()) + 1) + '0101'
GROUP BY
Catalogo.Cuenta,
Catalogo.Descripcion
go

En la clausula WHERE filtramos para el anio y en la primera expresion CASE
sumamos Movimientos.cantidad si FECHA_lla es igual a la fecha del sistema, y
en la segunda expresion CASE sumamos Movimientos.cantidad si FECHA_lla esta
incluida en el mes de la fecha del sistema. En la tercera sumamos
Movimientos.cantidad para todo el anio.


AMB


"Ducky" wrote:

Hola,

Necesito obtener los acumulados del DIA, MES y AÑO.

Con el siguiente SELECT ya obtengo la clave, descripcion y acumulado del
dia.

Pero no tengo idea como agregar la columna del mes y del año.

SELECT Catalogo.Cuenta, Catalogo.Descripcion, SUM(Movimientos.cantidad) AS
Expr1
FROM Codigos RIGHT OUTER JOIN
Movimientos ON Movimientos.Cuenta = Catalogo.Cuenta
WHERE (Movimientos.fec_mov >= CONVERT(varchar(8), GETDATE(), 112)) AND
(Movimientos.fec_mov < CONVERT(varchar(8), GETDATE() + 1, 112))
GROUP BY Catalogo.Cuenta, Catalogo.Descripcion


cambiando el Where por el siguiente obtengo el mes
WHERE (FECHA_lla >= CONVERT(varchar(6), GETDATE(), 112) + '01') AND
(FECHA_lla < CONVERT(varchar(6), DATEADD(mm, 1, GETDATE()), 112))

cambiando el Where por el siguiente obtengo el año:
WHERE (FECHA_lla >= CONVERT(varchar(4), GETDATE(), 112) + '0101') AND
(FECHA_lla < CONVERT(varchar(4), DATEADD(yyyy, 1, GETDATE()), 112))

Las columna que necesito son:
Clave, Descripcion, Dia, Mes, Año


Aprecio mucho cualquier informacion relacionada,



Preguntas similares