Ver Mensaje Individual
  #1 (permalink)  
Antiguo 08/02/2010, 17:58
carloshuchim
 
Fecha de Ingreso: junio-2007
Ubicación: Mérida, Yucatán, México
Mensajes: 94
Antigüedad: 17 años, 4 meses
Puntos: 1
Select ... Union all select ...

Tengo una duda...

Tengo una tabla como esta

Código:
+-------+-------------+--------------+
| GRUPO | FECHA_PAGO  | KM_AFECTADO  |
+-------+-------------+--------------+
| 6KG91 | 01/01/2007  | 0.23         |
+------------------------------------+
| 6KG91 | 01/01/2007  | 0.31         |
+------------------------------------+
| 6KG91 | 01/02/2007  | 0.45         |
+------------------------------------+
| 6JCV1 | 01/01/2007  | 1.03         |
+------------------------------------+
| 6JCV1 | 01/02/2007  | 0.23         |
+------------------------------------+
| 6JCV1 | 01/02/2007  | 0.31         |
+------------------------------------+
| 6JCV1 | 01/02/2007  | 0.45         |
+------------------------------------+
| 6JCV1 | 01/02/2007  | 2.87         |
+------------------------------------+
Lo que necesito es sumar los km_afectado por cada mes dentro del año 2007... hasta ahí no hay problema...

Código:
SELECT GRUPO, SUM( KM_AFECTADO ) as KM_AFECTADO FROM PREDIOS
WHERE DATEPART( yyyy, FECHA_PAGO ) = 2007 AND DATEPART( m, FECHA_PAGO ) = 1
GROUP BY GRUPO

+-------+--------------+
| GRUPO | KM_AFECTADO  |
+-------+--------------+
| 6KG91 | 0.54         |
+----------------------+
| 6JCV1 | 1.03         |
+----------------------+
El problema es que yo necesito hacer por cada mes, como esto...

Código:
+-------+--------------+-----+
| GRUPO | KM_AFECTADO  | MES |
+-------+--------------+-----+
| 6KG91 | 0.54         | 1   |
+----------------------+-----+
| 6JCV1 | 1.03         | 1   |
+----------------------+-----+
| 6KG91 | 0.45         | 2   |
+----------------------+-----+
| 6JCV1 | 3.86         | 2   |
+----------------------+-----+
Con una columna que me diga en que mes es la suma... pero si lo agrupo por fecha, la suma es por dia y no por mes...

pensé en usar
Código:
SELECT GRUPO, SUM( KM_AFECTADO ) as KM_AFECTADO FROM PREDIOS
WHERE DATEPART( yyyy, FECHA_PAGO ) = 2007 AND DATEPART( m, FECHA_PAGO ) = 1
GROUP BY GRUPO
UNION ALL
SELECT GRUPO, SUM( KM_AFECTADO ) as KM_AFECTADO FROM PREDIOS
WHERE DATEPART( yyyy, FECHA_PAGO ) = 2007 AND DATEPART( m, FECHA_PAGO ) = 2
GROUP BY GRUPO
UNION ALL
SELECT GRUPO, SUM( KM_AFECTADO ) as KM_AFECTADO FROM PREDIOS
WHERE DATEPART( yyyy, FECHA_PAGO ) = 2007 AND DATEPART( m, FECHA_PAGO ) = 3
GROUP BY GRUPO

+-------+--------------+
| GRUPO | KM_AFECTADO  |
+-------+--------------+
| 6KG91 | 0.54         |
+----------------------+
| 6JCV1 | 1.03         |
+----------------------+
| 6KG91 | 0.45         |
+----------------------+
| 6JCV1 | 3.86         |
+----------------------+
Pero no puedo sacar de qué mes son... se supone que hay meses en que no hay registros...

les agradecería su ayuda de antemano.. lo que no quiero es hacer una consulta por cada mes separado...

saludos y muchas gracias!!