Ver Mensaje Individual
  #1 (permalink)  
Antiguo 08/06/2009, 17:18
juanf03
 
Fecha de Ingreso: enero-2008
Mensajes: 125
Antigüedad: 16 años, 4 meses
Puntos: 0
utilizacion del case en query

Que tal, tengo una tabla

Legajos

lega_legajo(PK)
lega_provincia
lega_fecha_ingreso

y otra tabla

provincia

prov_codigo(pk)
prov_descripcion


Necesito mostrar para todas las provincias:codigo,descripción, cantidad de legajos que ingresaron a la empresa de esa prov en el año 2001 y cantidad de legajos que ingresaron a la empresa de esa prov en el año 2002.

Entonces yo probé con

select prov_codigo,prov_descripcion,case when (year(lega_fecha_ingreso)='2001') then count(*) end,case when (year(lega_fecha_ingreso)='2002') then count(*) end
from Legajos,Provincia
where lega_provincia=prov_codigo
group by prov_codigo,prov_descripcion,lega_provincia,lega_f echa_ingreso

pero no tuve los resultados esperados ya que por cada provincia me muestra 2 filas, y yo quiero que quede en una. O sea me esta quedando

'Codigo' 'Descripcion' 'Cant ingresados en el 2001' 'Cant ingresados en el 2002'
1 bs as 1 NULL
1 ba as NULL 1

y yo quiero que me quede una única fila por provincia:


'Codigo' 'Descripcion' 'Cant ingresados en el 2001' 'Cant ingresados en el 2002'
1 bs as 1 1


Alguien me puede decir como puedo lograr lo que quiero? se puede lograr con un case?? (no quiero usar subselects, ya se como solucionarlo de esa forma pero estaba buscando una solución de otro tipo)...un saludo

Última edición por juanf03; 08/06/2009 a las 17:34