Ver Mensaje Individual
  #12 (permalink)  
Antiguo 08/05/2015, 14:57
Paty_RR
 
Fecha de Ingreso: enero-2013
Mensajes: 176
Antigüedad: 12 años, 2 meses
Puntos: 2
Respuesta: Problemas con GROUP BY y SELECT

jaja lo siento creo que no soy muy buena explicando los problemas...

Gracias por sus respuestas, al fin pude solucionar mi grandisimo problema, mi consulta quedo asi:

Código SQL:
Ver original
  1. /*INGRESOS Y EGRESOS POR TRIMESTRES*/
  2. SELECT  YEAR(fecha) AS 'Año',
  3.         CASE
  4.             WHEN MONTH(fecha) IN (1,2,3) THEN ' ENERO - MARZO'
  5.             WHEN MONTH(fecha) IN (4,5,6) THEN ' ABRIL - JUNIO'
  6.             WHEN MONTH(fecha) IN (7,8,9) THEN ' JULIO - SEPTIEMBRE'
  7.             WHEN MONTH(fecha) IN (10,11,12) THEN ' OCTUBRE - DICEMBRE'
  8.         END AS Trimestre,
  9.         m.id, m.descripcion AS Concepto, CAST(SUM(costo)/1000000 AS INT) AS MontoMN
  10. FROM    principal m LEFT JOIN detalle d
  11.         ON m.id= d.id
  12. WHERE   d.idIN('400000', '500000')
  13. GROUP BY m.id, m.descripcion,YEAR(fecha),
  14.             CASE
  15.               WHEN MONTH(fecha) IN (1,2,3) THEN ' ENERO - MARZO'
  16.               WHEN MONTH(fecha) IN (4,5,6) THEN ' ABRIL - JUNIO'
  17.               WHEN MONTH(fecha) IN (7,8,9) THEN ' JULIO - SEPTIEMBRE'
  18.               WHEN MONTH(fecha) IN (10,11,12) THEN ' OCTUBRE - DICEMBRE'
  19.             END
  20. UNION
  21. /*DISPONIBILIDAD INICIAL EN MILLONES DE PESOS POR TRIMESTRES*/
  22. SELECT  YEAR(fecha) AS 'Año',
  23.         CASE
  24.             WHEN MONTH(fecha) IN (1,2,3) THEN ' ENERO - MARZO'
  25.             WHEN MONTH(fecha) IN (4,5,6) THEN ' ABRIL - JUNIO'
  26.             WHEN MONTH(fecha) IN (7,8,9) THEN ' JULIO - SEPTIEMBRE'
  27.             WHEN MONTH(fecha) IN (10,11,12) THEN ' OCTUBRE - DICEMBRE'
  28.         END AS Trimestre,
  29.         m.id, m.descripcion AS Concepto, CAST(costo/1000000 AS INT) AS MontoMN
  30. FROM    principal m LEFT JOIN detalle d
  31.         ON m.id= d.id
  32. WHERE   d.id= '300000' AND CONVERT(VARCHAR(10), d.fecha, 103) = (SELECT TOP 1 CONVERT(VARCHAR(10), dd.fecha, 103)
  33.                                                                               FROM   detalle AS dd
  34.                                                                               WHERE  MONTH(dd.fecha) = MONTH(d.fecha)
  35.                                                                                    AND YEAR(dd.fecha) = YEAR(d.fecha)
  36.                                                                                    AND dd.id= d.idAND MONTH(dd.fecha) IN (1,4,7,10)
  37.                                                                               ORDER BY dd.fecha
  38.                                                                               )
  39. GROUP BY m.id, m.descripcion, costo, YEAR(fecha),
  40.          CASE
  41.             WHEN MONTH(fecha) IN (1,2,3) THEN ' ENERO - MARZO'
  42.             WHEN MONTH(fecha) IN (4,5,6) THEN ' ABRIL - JUNIO'
  43.             WHEN MONTH(fecha) IN (7,8,9) THEN ' JULIO - SEPTIEMBRE'
  44.             WHEN MONTH(fecha) IN (10,11,12) THEN ' OCTUBRE - DICEMBRE'
  45.          END
  46. UNION
  47. /*DISPONIBILIDAD FINAL EN MILLONES DE PESOS*/
  48. SELECT  YEAR(fecha) AS 'Año',
  49.         CASE
  50.             WHEN MONTH(fecha) IN (1,2,3) THEN ' ENERO - MARZO'
  51.             WHEN MONTH(fecha) IN (4,5,6) THEN ' ABRIL - JUNIO'
  52.             WHEN MONTH(fecha) IN (7,8,9) THEN ' JULIO - SEPTIEMBRE'
  53.             WHEN MONTH(fecha) IN (10,11,12) THEN ' OCTUBRE - DICEMBRE'
  54.         END AS Trimestre,
  55.         m.id, m.descripcion AS Concepto, CAST(costo/1000000 AS INT) AS MontoMN
  56. FROM    principal m LEFT JOIN detalle d
  57.         ON m.id= d.id
  58. WHERE   d.id= '700000' AND CONVERT(VARCHAR(10), d.fecha, 103) = (SELECT TOP 1 CONVERT(VARCHAR(10), dd.fecha, 103)
  59.                                                                               FROM   detalleas dd
  60.                                                                               WHERE  MONTH(dd.fecha) = MONTH(d.fecha)
  61.                                                                                    AND YEAR(dd.fecha) = YEAR(d.fecha)
  62.                                                                                    AND dd.id= d.id AND MONTH(dd.fecha) IN (3,6,9,12)
  63.                                                                               ORDER BY dd.fecha DESC
  64.                                                                               )
  65. GROUP BY m.id, m.descripcion, costo, YEAR(fecha),
  66.          CASE
  67.             WHEN MONTH(fecha) IN (1,2,3) THEN ' ENERO - MARZO'
  68.             WHEN MONTH(fecha) IN (4,5,6) THEN ' ABRIL - JUNIO'
  69.             WHEN MONTH(fecha) IN (7,8,9) THEN ' JULIO - SEPTIEMBRE'
  70.             WHEN MONTH(fecha) IN (10,11,12) THEN ' OCTUBRE - DICEMBRE'
  71.          END
[/CODE]


Los nombres de las columnas y tablas son ejemplos :P

Gracias!!!
__________________
Define tus intereses, se curioso, investiga, comete errores, aprende, practica, mejora, enseña y vuelve a comenzar....

Última edición por gnzsoloyo; 08/05/2015 a las 15:00 Razón: Pesimamente etiquetado...