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

Select Count resultados en distintas filas

Estas en el tema de Select Count resultados en distintas filas en el foro de SQL Server en Foros del Web. Buenas noches a todos, estoy con un problemita talvez me puedar ayudar a resolverlo. tengo la tabla con las siguientes caracteristicas Producto | Estado Item1 ...
  #1 (permalink)  
Antiguo 30/04/2011, 22:14
 
Fecha de Ingreso: febrero-2006
Mensajes: 57
Antigüedad: 18 años, 9 meses
Puntos: 0
Select Count resultados en distintas Columnas

Buenas noches a todos, estoy con un problemita talvez me puedar ayudar a resolverlo.

tengo la tabla con las siguientes caracteristicas

Producto | Estado
Item1 | 1
Item2 | 2
Item3 | 1
Item4 | 3
Item5 | 1
Item6 | 2
Item7 | 2
Item8 | 3

bien, yo necesito una consulta que me devuelva lo siguiente:

Productos | Estado1 | Estado2 | Estado3
8 | 3 | 3 | 2

es posible hacer esto directamente desde SQL??


desde ya, muchas gracias por la ayuda me puedan brindar

Última edición por gustavowd; 02/05/2011 a las 04:55 Razón: Arreglo de titulo
  #2 (permalink)  
Antiguo 02/05/2011, 08:02
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 10 meses
Puntos: 447
Respuesta: Select Count resultados en distintas filas

Hola gustavowd:

Lo que pretendes hacer si es posible, y en muchas ocasiones hemos tratado en este foro distintas maneras para poder hacerlo, para la próxima sería conveniente que utilizaras las opciones de búsqueda del foro para ver si ya existe algún problema similar, y sólo si no encuentras nada que te sea de ayuda entonces sí hacer una nueva publicación. Ojo con eso.

Ahora bien, entrando en materia, si sólo tienes tres estados en tu tabla, y estos no van a incrementarse, la manera más sencilla que tienes es hacer un sum condicional:

Código SQL:
Ver original
  1. DECLARE @Tabla TABLE (Producto VARCHAR(15), Estado INT)
  2. INSERT INTO @Tabla VALUES ('Item1', 1)
  3. INSERT INTO @Tabla VALUES ('Item2', 2)
  4. INSERT INTO @Tabla VALUES ('Item3', 1)
  5. INSERT INTO @Tabla VALUES ('Item4', 3)
  6. INSERT INTO @Tabla VALUES ('Item5', 1)
  7. INSERT INTO @Tabla VALUES ('Item6', 2)
  8. INSERT INTO @Tabla VALUES ('Item7', 2)
  9. INSERT INTO @Tabla VALUES ('Item8', 3)
  10.  
  11. SELECT * FROM @Tabla
  12.  
  13. SELECT
  14. COUNT(*) AS Productos,
  15. SUM(CASE WHEN Estado = 1 THEN 1 ELSE 0 END) Estado1,
  16. SUM(CASE WHEN Estado = 2 THEN 1 ELSE 0 END) Estado2,
  17. SUM(CASE WHEN Estado = 3 THEN 1 ELSE 0 END) Estado3
  18. FROM @Tabla

Si por el contrario tus estados son más de tres o es un número variable, quizás te convenga utilizar tablas pivote (PIVOT).

Saludos
Leo.

Etiquetas: count, distintas, filas, resultados, 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 22:14.