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

Asignar multiples variables de un select con group by

Estas en el tema de Asignar multiples variables de un select con group by en el foro de SQL Server en Foros del Web. Mi pregunta viene sobre este contexto tengo una tabla en donde hay registros que pueden estar en 3 estados 1, 2, 3 y necesito asignar ...
  #1 (permalink)  
Antiguo 17/08/2011, 14:13
 
Fecha de Ingreso: octubre-2006
Mensajes: 3
Antigüedad: 18 años, 1 mes
Puntos: 0
Asignar multiples variables de un select con group by

Mi pregunta viene sobre este contexto tengo una tabla en donde hay registros que pueden estar en 3 estados 1, 2, 3 y necesito asignar esos tres conteos a tres variables distintas definidas a continuacion

DECLARE @count1 int, @count2 int, @count3 int

Esta es la consulta

SELECT status, count(status) as countStatus
FROM [table]
GROUP BY status

Esto me devuelve algo asi

--------------------------
status | countStatus
1 | 10
2 | 15
3 | 20

lo que necesito es asignar las tres variables en un select de el resulto de la
consulta anterior para hacerlo en una sola consulta ya que tengo demasiados
registros y no quiero hacerlo en varias y ademas por que no quiero cambiar la
logica ya que el storeprocedure debe devolver esas 3 variables.

Resultado esperado @count1 = 10 @count2 = 15 y @count3 = 20
  #2 (permalink)  
Antiguo 17/08/2011, 14:18
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 17 años, 4 meses
Puntos: 180
Respuesta: Asignar multiples variables de un select con group by

Intentalo asi:

SELECT Status,
@count1 = SUM(CASE WHEN Status = 1 THEN 1 ELSE 0),
@count2 = SUM(CASE WHEN Status = 2 THEN 1 ELSE 0),
@count3 = SUM(CASE WHEN Status = 3 THEN 1 ELSE 0),
__________________
MCTS Isaias Islas
  #3 (permalink)  
Antiguo 17/08/2011, 17:08
 
Fecha de Ingreso: octubre-2006
Mensajes: 3
Antigüedad: 18 años, 1 mes
Puntos: 0
Respuesta: Asignar multiples variables de un select con group by

Muchas gracias me sirvio, sin embargo cuando no hay ningun status la variable viene nula como hago para asignarle 0 si no hay resultados?
  #4 (permalink)  
Antiguo 17/08/2011, 17:27
 
Fecha de Ingreso: octubre-2006
Mensajes: 3
Antigüedad: 18 años, 1 mes
Puntos: 0
Respuesta: Asignar multiples variables de un select con group by

lo arregle asi no se si es lo mejor si alguien me corrige jeje

SELECT @count1 = isnull(@count1,0)
  #5 (permalink)  
Antiguo 18/08/2011, 10:37
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 17 años, 4 meses
Puntos: 180
Respuesta: Asignar multiples variables de un select con group by

Por supuesto, si presumimos que puede NO HABER NADA, utilizamos lo que nos comentas.
__________________
MCTS Isaias Islas

Etiquetas: group, multiples, registros, select, tabla, variables
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 14:01.