SQL Server - Procedimiento Almacenado TSQL

   
Vista:

Procedimiento Almacenado TSQL

Publicado por Fran (1 intervención) el 13/11/2008 13:07:27
Hola, necesito saber como hago un procedimiento almacenado para calcular el porcentaje determinado a partir de un count(*).

este es mi query: Select Pais, Provincia, Municipio, Sexo, Count(*) From Personas where Pais <> "España" And Tipo = "Alta" And FechaNac >= "01/01/2003" and FechaNac <= "31/12/2008" Group By Pais, Provincia, Municipio, Sexo

[url][img=http://img363.imageshack.us/img363/9196/sinttulo1km4.jpg][/url]

Los porcentajes que aparecen arriba en la parte de procedencia se sacan a partir de la suma total de personas de la procedencia específica, mientras que el porcentaje que aparece en la liena Total, se saca de la suma de todas las procedencias de acuerdo a la consulta SQL.

Mil gracias de antemano.
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:Procedimiento Almacenado TSQL

Publicado por Isaias (3308 intervenciones) el 22/11/2008 05:22:36
Lee un poco sobre la funcion AVG()
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

RE:Procedimiento Almacenado TSQL

Publicado por Mauricio (67 intervenciones) el 27/11/2008 02:47:14
Hola Fran,

Así toda la solución con SQL se me ocurre que únicamente usando COMPUTE, pero honestamente hace tiempo que me pasé a Oracle y no recuerdo la sintaxis.
Sin embargo, te puedo dar gran parte de la solución con este query:

Select Pais, Provincia, Municipio, Sexo,
Count(case when edad between 0 and 5 then 1 else null end) edad_0_a_5,
Count(case when edad between 6 and 10 then 1 else null end) edad_6_a_10,
Count(case when edad > 10 then 1 else null end) edad_mayor_10
From Personas where Pais <> "España" And Tipo = "Alta" And FechaNac >= "01/01/2003" and FechaNac <= "31/12/2008" Group By Pais, Provincia, Municipio, Sexo

Este es un viejo truco de SQL, puesto que el CASE evalúa si cae dentro del rango y COUNT() no cuenta valores NULL.

Espero que te haya ayudado. Saludos!
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