SQL - Como reducir este codigo SQL,

 
Vista:

Como reducir este codigo SQL,

Publicado por Efren (50 intervenciones) el 04/12/2003 19:34:45
select count(Preg2)from TPReguntas where Preg2 = '1-3 meses'
(select count(Preg2)from TPreguntas where Preg2 = '3-6 meses')
(select count(Preg2)from TPreguntas where Preg2 = '6-12 meses')
(select count(Preg2)from TPreguntas where Preg2 = '12-24 meses')
(select count(Preg2)from TPreguntas where Preg2 = '24-36 meses')
(select count(Preg2)from TPreguntas where Preg2 = 'mas de 36 meses')

tal vez en una sola sentencia se haga todo este enredadero.. QUIERO SACAR CUANTAS OPCIONES HAY REPETIDAS EN ESA MISMA COLUMNA, Y LO QUE ESTOY HACIENDO ES CONSULTAR POR SEPARADO... COMO LO HAGO CON UN QUERY MAS CORTO??
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Como reducir este codigo SQL,

Publicado por Isaías Islas (5072 intervenciones) el 04/12/2003 20:12:44
No se si sea mas CORTO, no he contado los caracteres, pero de que es mas EFECTIVO, sin duda:

SELECT SUM(CASE WHEN Preg2 = '1-3 meses' THEN 1 ELSE 0 END) AS [1-3 meses],
SUM(CASE WHEN Preg2 = '3-6 meses' THEN 1 ELSE 0 END) AS [3-6 meses],
SUM(CASE WHEN Preg2 = '6-12 meses' THEN 1 ELSE 0 END) AS [6-12 meses],
SUM(CASE WHEN Preg2 = '12-24 meses' THEN 1 ELSE 0 END) AS [12-24 meses],
SUM(CASE WHEN Preg2 = '24-36 meses' THEN 1 ELSE 0 END) AS [24-36 meses],
SUM(CASE WHEN Preg2 = 'mas de 36 meses' THEN 1 ELSE 0 END) AS [mas de 36 meses]
FROM MyTabla.......................
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar