Ver Mensaje Individual
  #2 (permalink)  
Antiguo 02/05/2011, 08:02
leonardo_josue
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 4 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.