Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

[SOLUCIONADO] Problemas con GROUP BY y SELECT

Estas en el tema de Problemas con GROUP BY y SELECT en el foro de SQL Server en Foros del Web. Buen día, agradezco su tiempo y espero me puedan ayudar... Quiero hacer una consulta que me regrese el acumulado de ventas en un mes.... @import ...
  #1 (permalink)  
Antiguo 08/05/2015, 08:59
 
Fecha de Ingreso: enero-2013
Mensajes: 176
Antigüedad: 11 años, 3 meses
Puntos: 2
Pregunta Problemas con GROUP BY y SELECT

Buen día, agradezco su tiempo y espero me puedan ayudar...

Quiero hacer una consulta que me regrese el acumulado de ventas en un mes....
Código SQL:
Ver original
  1. SELECT  producto, SUM(costo) AS Total
  2. FROM    ventas
  3. WHERE   fecha_Venta BETWEEN '2015-01-01' AND '2015-01-31'
  4. GROUP BY producto

Esta consulta es un ejemplo de lo que pretendo hacer, funciona correctamente me regresa el total de ventas del producto....


Pero yo necesito agregar en el select la fecha de la venta ya que esta información la procesare en una app donde obtenga las ventas en base a un rango de fechas...

Código SQL:
Ver original
  1. SELECT  producto, SUM(costo) AS Total, fecha_Venta
  2. FROM    ventas
  3. WHERE   fecha_Venta BETWEEN '2015-01-01' AND '2015-01-31'
  4. GROUP BY producto, fecha_Venta
Esto hace que mi consulta me regrese las ventas por día! y no por tango de fechas, alguien podría ayudarme por favor!!!!


Mil 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 10:00
  #2 (permalink)  
Antiguo 08/05/2015, 09:05
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Problemas con GROUP BY y SELECT

Que fecha de venta quieres que aparezca?? estas consiente que si estas haciendo una agrupacion por fecha los resultados van a ser por cada dia de tu rango de fechas, lo que quieres hacer no tiene sentido.........
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #3 (permalink)  
Antiguo 08/05/2015, 09:52
 
Fecha de Ingreso: enero-2013
Mensajes: 176
Antigüedad: 11 años, 3 meses
Puntos: 2
Respuesta: Problemas con GROUP BY y SELECT

Hola libras...

A lo que voy es:

El rango de fechas será un parametro de mi aplicación, por lo tanto mi consulta sin fecha quedaria asi:

Código SQL:
Ver original
  1. SELECT  producto, SUM(costo) AS Total
  2. FROM    ventas
  3. GROUP BY producto
Esto me regresa todos los registros de ventas del producto.

Al pasar el parametro de fecha desde mi app necesitaria mostrar en el select la fecha, dado que con esta haría el filtro, pero al agregar la fecha en el select, el group by y el sum ya no funcionarian de forma correcta..


Mex explico??
__________________
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 10:01
  #4 (permalink)  
Antiguo 08/05/2015, 09:59
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Problemas con GROUP BY y SELECT

creo que no entiendes que lo que quieres hacer no se puede lograr con un group by, porque al hacer la agrupacion esta se haria por dias, ahora puedes explicar cual es la fecha que quieres que aparezca en tu reporte?? o quieres que aparezca el rango de fechas con el total de ventas???
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #5 (permalink)  
Antiguo 08/05/2015, 11:01
 
Fecha de Ingreso: enero-2013
Mensajes: 176
Antigüedad: 11 años, 3 meses
Puntos: 2
Respuesta: Problemas con GROUP BY y SELECT

Si lo se, no se puede con el group by por eso queria alguna alternativa de como tratar este caso, si se podria....

Pero si en fin ya vi que sql server no me permite manipular esto, optare por otra solución.

Gracias!
__________________
Define tus intereses, se curioso, investiga, comete errores, aprende, practica, mejora, enseña y vuelve a comenzar....
  #6 (permalink)  
Antiguo 08/05/2015, 11:14
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Problemas con GROUP BY y SELECT

la verdad no entiendo que quieres hacer, podrias poner un ejemplo de lo que quieres lograr para ver si desde sql se puede hacer???
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #7 (permalink)  
Antiguo 08/05/2015, 11:23
 
Fecha de Ingreso: enero-2013
Mensajes: 176
Antigüedad: 11 años, 3 meses
Puntos: 2
Respuesta: Problemas con GROUP BY y SELECT

Mira la verdad esta un poco revuelto, tal vez no me explico bien.

Lo que requiero en SQL es una consulta que me regrese las ventas de x producto ya que mostrare una grafica de las ventas por un rango de fecha, es decir cada trimestre...

Por lo tanto mi aplicacion jalara de SQL las ventas de x producto con fecha... Los registros diarios.

Al manipular yo la información (los registros diarios) en mi aplicacion necesito hacer una sumatoria del total de ventas del producto por trimestres, esto lo podría realizar por código estamos de acuerdo verdad??

Pero resulta que el reporte lo estoy realizando en un sw para reportes exclusivamente que no me permite manipular mucho los datos por código, por esta razón, quería ver si podría hacer todo esto desde SQL Server...

Estoy optando por um case when por trimestres, pero en mi group by no he podido agrupar esta columna que genero...

Me expliqué?? mas o menos lo que pretendo o no??

Gracias por la pasiencia..
__________________
Define tus intereses, se curioso, investiga, comete errores, aprende, practica, mejora, enseña y vuelve a comenzar....
  #8 (permalink)  
Antiguo 08/05/2015, 11:28
 
Fecha de Ingreso: enero-2013
Mensajes: 176
Antigüedad: 11 años, 3 meses
Puntos: 2
Respuesta: Problemas con GROUP BY y SELECT

Ya pude hacer la agrupacion del case when, debo poner todo nuevamente en el group by..


Seguire trabajando con esta opcion a ver si puedo lograr algo..

Cuando solucione mi caso te lo explico mas detallado Libras por que asi tal vez no me doy a entender
__________________
Define tus intereses, se curioso, investiga, comete errores, aprende, practica, mejora, enseña y vuelve a comenzar....
  #9 (permalink)  
Antiguo 08/05/2015, 11:30
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Problemas con GROUP BY y SELECT

sigo sin entender tu problematica, un ejemplo de tus datos y que quieres obtener seria mas claro para mi......
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #10 (permalink)  
Antiguo 08/05/2015, 14:29
 
Fecha de Ingreso: febrero-2015
Mensajes: 89
Antigüedad: 9 años, 3 meses
Puntos: 1
Respuesta: Problemas con GROUP BY y SELECT

Cita:
Iniciado por Paty_RR Ver Mensaje
Buen día, agradezco su tiempo y espero me puedan ayudar...


Pero yo necesito agregar en el select la fecha de la venta ya que esta información la procesare en una app donde obtenga las ventas en base a un rango de fechas...

Código SQL:
Ver original
  1. SELECT  producto, SUM(costo) AS Total, fecha_Venta
  2. FROM    ventas
  3. WHERE   fecha_Venta BETWEEN '2015-01-01' AND '2015-01-31'
  4. GROUP BY producto, fecha_Venta
Esto hace que mi consulta me regrese las ventas por día! y no por tango de fechas, alguien podría ayudarme por favor!!!!


Mil gracias...
Te estas enredando mucho creo, en esta consulta:

Código SQL:
Ver original
  1. SELECT  producto, SUM(costo) AS Total, fecha_Venta
  2. FROM    ventas
  3. WHERE   fecha_Venta BETWEEN '2015-01-01' AND '2015-01-31'
  4. GROUP BY producto, fecha_Venta

en el campo de "Fecha_Venta" que es lo que quieres que te regrese?
la fecha que inicia el rango? = '2015-01-01'
o la otra fecha = '2015-01-31'

o quieren concatenarlos? WTF.

si muestras un ejemplo de lo quieres q te regrese seria mejor. :P
  #11 (permalink)  
Antiguo 08/05/2015, 14:36
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Problemas con GROUP BY y SELECT

Exacto no le veo ni pies ni cabeza a su planteamiento
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #12 (permalink)  
Antiguo 08/05/2015, 14:57
 
Fecha de Ingreso: enero-2013
Mensajes: 176
Antigüedad: 11 años, 3 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...
  #13 (permalink)  
Antiguo 08/05/2015, 14:59
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Problemas con GROUP BY y SELECT

jajajajaja, era eso?? me lo imagine que querias algo como eso :P, pero no te explicaste nada bien para entender cual era tu problematica :P

saludos!
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #14 (permalink)  
Antiguo 11/05/2015, 08:03
 
Fecha de Ingreso: febrero-2015
Mensajes: 89
Antigüedad: 9 años, 3 meses
Puntos: 1
Respuesta: Problemas con GROUP BY y SELECT

a eso me refería a que querias que te muestre en ese campo, estuve cerca con eso de concatenar la fecha de inicio y fin. xD

Nunca especificaste que querías transformarlo en nombre de mes.. . pero lo bueno es que te salio.

Saludos,
  #15 (permalink)  
Antiguo 11/05/2015, 08:38
 
Fecha de Ingreso: enero-2013
Mensajes: 176
Antigüedad: 11 años, 3 meses
Puntos: 2
Respuesta: Problemas con GROUP BY y SELECT

Si al final funciono =D ...

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

Etiquetas: group, select
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:54.