Ver Mensaje Individual
  #1 (permalink)  
Antiguo 26/08/2010, 09:24
Avatar de bLEx
bLEx
 
Fecha de Ingreso: mayo-2008
Ubicación: Villa Alemana, Chile
Mensajes: 181
Antigüedad: 16 años
Puntos: 5
Exclamación Consulta SQL no muestra cuando no tiene valores...

Buenas, estoy trabajando en una query que lee desde mi BD postgres y genera un listado de meses con sus valores asociados. Las consulta corresponden a 1 año, por lo que me deberia mostrar x ej: desde Enero 09 a Enero 10.

El problema es que cuando no presenta registros un mes, no muestra la salida con valor 0, sino que simplemente no colocar la linea. Y como esto da a parar a un grafico anual, necesito tener ese valor con 0.

Aqui les dejo la query y el resultado.
Código:
Select count(CASE WHEN fn.id_tipooperacion=8 THEN 1 END)AS unidades, 
ROUND(SUM(CASE WHEN fn.id_tipooperacion=8 THEN (fn.total_preciopromesa_uf)/1000 END) ) AS VENTABRUTA ,
dt.periodo_corto, dci.region,fn.id_tiempo
FROM fact_negocios as fn, dim_tiempo as dt,dim_comuna as dc,dim_ciudad as dci, dim_tipoproducto as dtp
WHERE fn.id_tiempo= dt.fecha
AND fn.id_comuna_proyecto=dc.id_comuna
AND dc.id_ciudad=dci.id_ciudad
AND fn.id_tiempo BETWEEN '2009-01-01' and '2010-01-01'
AND dci.region='RM'

AND dc.glosa_comuna='la florida'
AND fn.id_tipoproducto=dtp.id_tipoproducto
AND dtp.tipo in ('departamento')
AND dtp.modelo in ('2D 1B')

GROUP BY 
dt.anio,
dt.mes,
dt.periodo_corto,
dci.region,
fn.id_tiempo
ORDER BY 
dt.anio,
dt.mes,
dt.periodo_corto
y el resultado es
3;4;"ENE09";"RM";"2009-01-01"
6;7;"FEB09";"RM";"2009-02-01"
7;9;"MAR09";"RM";"2009-03-01"
2;2;"MAY09";"RM";"2009-05-01"
6;8;"JUL09";"RM";"2009-07-01"
10;13;"AGO09";"RM";"2009-08-01"
1;1;"SEP09";"RM";"2009-09-01"
1;1;"OCT09";"RM";"2009-10-01"
6;10;"NOV09";"RM";"2009-11-01"
4;5;"DIC09";"RM";"2009-12-01"
2;3;"ENE10";"RM";"2010-01-01"

cuando lo que me gustaria lograr es...
3;4;"ENE09";"RM";"2009-01-01"
6;7;"FEB09";"RM";"2009-02-01"
7;9;"MAR09";"RM";"2009-03-01"
0;0;"ABR09";"RM";"2009-04-01"
2;2;"MAY09";"RM";"2009-05-01"
0;0;"JUN09";"RM";"2009-06-01"
6;8;"JUL09";"RM";"2009-07-01"
10;13;"AGO09";"RM";"2009-08-01"
1;1;"SEP09";"RM";"2009-09-01"
1;1;"OCT09";"RM";"2009-10-01"
6;10;"NOV09";"RM";"2009-11-01"
4;5;"DIC09";"RM";"2009-12-01"
2;3;"ENE10";"RM";"2010-01-01"