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

GROUP BY incluyendo registros con count 0

Estas en el tema de GROUP BY incluyendo registros con count 0 en el foro de SQL Server en Foros del Web. Saludos, Necesito hacer una consulta para sacar los promedios de ventas de los meses pero necesito que me incluya los meses en que no hubieron ...
  #1 (permalink)  
Antiguo 14/07/2011, 12:33
Avatar de danico90  
Fecha de Ingreso: febrero-2009
Ubicación: San José, Costa Rica
Mensajes: 148
Antigüedad: 15 años, 2 meses
Puntos: 13
GROUP BY incluyendo registros con count 0

Saludos,

Necesito hacer una consulta para sacar los promedios de ventas de los meses pero necesito que me incluya los meses en que no hubieron compras.

¿Hay alguna forma con SQL o con LINQ de hacer esto?

Ejemplo de lo que quiero hacer:

Así lo tengo:

mes promedio
1 345.6
3 200

Esto es lo que necesito hacer:

mes promedio
1 345.6
2 0
3 200
  #2 (permalink)  
Antiguo 14/07/2011, 13:58
Avatar de Inicia  
Fecha de Ingreso: octubre-2010
Ubicación: Actualmente en GDL
Mensajes: 135
Antigüedad: 13 años, 6 meses
Puntos: 1
Respuesta: GROUP BY incluyendo registros con count 0

muestra tu consulta
  #3 (permalink)  
Antiguo 14/07/2011, 14:12
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: GROUP BY incluyendo registros con count 0

Con nada mas esos datos si estaria dificil obtener lo que necesitas, no tienes ademas un campo fecha??

Saludos!
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #4 (permalink)  
Antiguo 14/07/2011, 15:08
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 3 meses
Puntos: 447
Respuesta: GROUP BY incluyendo registros con count 0

Hola danico90:

como te habrás dado cuenta por los comentarios de los compañeros Inicia y Libras, la información que das en tu post es muy poca, por lo que es muy difícil poder ayudar, la mayoría de los foristas somos informáticos, no adivinos pero bueno vamos a hacer la lucha por ayudarte...

Para tu consulta, puedes crear una tabla de meses y hacer un LEFT JOIN o RIGTH JOIN con tu tabla de promedios, serías más o menos así:

Código MySQL:
Ver original
  1. declare @TuTabla table (mes int, promedio real)
  2. insert into @TuTabla values (1, 345.6)
  3. insert into @TuTabla values (3, 200)
  4.  
  5. declare @Meses Table (mes int, descripcion varchar(20))
  6. insert into @Meses values (1, 'Enero')
  7. insert into @Meses values (2, 'Febrero')
  8. insert into @Meses values (3, 'Marzo')
  9. insert into @Meses values (12, 'Diciembre')
  10.  
  11. select M.descripcion, isnull(T.promedio, 0) promedio
  12. from @meses M left join @TuTabla T ON M.mes = T.mes
  13.  
  14. select M.descripcion, isnull(T.promedio, 0) promedio
  15. from @TuTabla T right join @meses M ON M.mes = T.mes

El resultado para ambas consultas sería:

Código:
descripcion          promedio
-------------------- -------------
Enero                345.6
Febrero              0
Marzo                200
Diciembre            0
Dale un vistazo a ver si te sirve y para la próxima dedica cinco minutos en tratar de dar el mayor número de detalles, incluyendo alguna consulta en la que estés trabajando, entre más información proporciones más fácil será tratar de ayudarte.

Saludos
Leo.
  #5 (permalink)  
Antiguo 14/07/2011, 15:17
Avatar de danico90  
Fecha de Ingreso: febrero-2009
Ubicación: San José, Costa Rica
Mensajes: 148
Antigüedad: 15 años, 2 meses
Puntos: 13
Respuesta: GROUP BY incluyendo registros con count 0

Gracias por responder, disculpen pensé que había sido explícito, es que no me gusta que m resuelvan las cosas sino más bien que me den una guía.

Gracias leonardo, con eso me funcionará.

Etiquetas: count, group, registros, sql
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 03:46.