Subconsulta en la misma tabla

Necesito hacer una gráfica comparativa por año y por un campo llamado giro, lo hago a través de un procedimiento almacenado en sql server 2008 con visual studio 2010, lógicamente tengo un campo llamado anio(año) necesito que mi consulta me de de esta manera(utilizando count para solo tener el numero total de registros con ese año y ese giro) el query que utilizo es este
SELECT  Count(No_Expediente)as Servicios
FROM  ventanilla a,cat_anio b
WHERE  b.anio='2007' and a.anio=b.anio and a.Giro='Servicios'
Me ayudo de una catalogo de año de allí lo del where, pero como te comento aparte de servicios en el giro tengo Fraccionamiento, industria y habitacional, la comaracion que hago con el año=2007 la voy a cambiar por una variable algo como esto @anio as int AS que saldrá de un combo en mi formulario aspx así como @giro as Char AS que = saldrá de un combo,
Te explico todo esto para que tengas una visión de todo, ahora si el objetivo de la pregunta es que tenga un query que me de como resultado lo siguiente
Servicios Fraccionamiento Inductria Habitacional
    10 12 5 8
Debe de haber algo así como un union o join para hacerlo de una sola tabla.

1 Respuesta

Respuesta
1
Si no entiendo mal en el campo "Giro" tienes el texto que indica si es "Servicios", "Fraccionamiento", "¿Industria" o "Habitacional" no?
Si es así bastaría hacer un COUNT de No_Expediente con un GROUP BY por ese campo y, para el año, hacer un INNER JOIN entre 'ventanilla' y 'cat_anio':
SELECT ventanilla.Giro, COUNT(No_Expediente)
FROM ventanilla INNER JOIN cat_anio ON ventanilla.anio = cat_anio.anio
WHERE ventanilla.anio = '2007'
GROUP BY ventanilla.Giro, ventanilla.anio
De este modo tendrías una consulta con 4 filas en la que tendrías:
Servicios 10
Fraccionamiento 12
Industria 5
Habitacional 8

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas