Ver Mensaje Individual
  #2 (permalink)  
Antiguo 17/03/2012, 19:09
nachoou
 
Fecha de Ingreso: julio-2010
Mensajes: 7
Antigüedad: 13 años, 9 meses
Puntos: 0
Respuesta: problema Subconsulta

DECLARE @ANO VARCHAR(4)
SET @ANO= 2011

SELECT SC0.CodContable,TOTAL=COALESCE(SC0.TOTAL),ENERO=CO ALESCE(SC1.TOTAL),FEBRERO=COALESCE(SC2.TOTAL), MARZO=COALESCE(SC3.TOTAL),etc.
FROM((
SELECT M.CodContable,
sum((M.MontoDebe) - (M.MontoHaber)) AS TOTAL
FROM MovGenerales M
WHERE M.FechaMovimiento >= CONVERT(DATETIME,'01/01/'+CAST( @ANO AS VARCHAR)) AND M.FechaMovimiento <= DATEADD(MONTH,12,CONVERT(DATETIME,'01/01/'+CAST( @ANO AS VARCHAR)))-1
GROUP BY M.CodContable
) SC0
LEFT JOIN (
SELECT M.CodContable,
sum((M.MontoDebe) - (M.MontoHaber)) AS TOTAL
FROM MovGenerales M
WHERE M.FechaMovimiento >= CONVERT(DATETIME,'01/01/'+CAST( @ANO AS VARCHAR)) AND M.FechaMovimiento <= DATEADD(MONTH,1,CONVERT(DATETIME,'01/01/'+CAST( @ANO AS VARCHAR)))-1
GROUP BY M.CodContable
) SC1 ON SC0.CodContable=SC1.CodContable
LEFT JOIN (
SELECT M.CodContable,
sum((M.MontoDebe) - (M.MontoHaber)) AS TOTAL
FROM MovGenerales M
WHERE M.FechaMovimiento >= CONVERT(DATETIME,'01/01/'+CAST( @ANO AS VARCHAR)) AND M.FechaMovimiento <= DATEADD(MONTH,2,CONVERT(DATETIME,'01/01/'+CAST( @ANO AS VARCHAR)))-1
GROUP BY M.CodContable
) SC2 ON SC0.CodContable=SC2.CodContable
LEFT JOIN (
SELECT M.CodContable,
sum((M.MontoDebe) - (M.MontoHaber)) AS TOTAL
FROM MovGenerales M
WHERE M.FechaMovimiento >= CONVERT(DATETIME,'01/01/'+CAST( @ANO AS VARCHAR)) AND M.FechaMovimiento <= DATEADD(MONTH,3,CONVERT(DATETIME,'01/01/'+CAST( @ANO AS VARCHAR)))-1
GROUP BY M.CodContable
) SC3 ON SC0.CodContable=SC3.CodContable
etc.