Hola alguien podría ayudarme con este tema 

 

Quiero sacar  el precio minimo, máximo, media por mes por columna y una
general, en la general me sale bien pero por mes columna no me trae el
minimo. Me trae 0(cero) siempre en la columna min_enero

 

SELECT cd.codigo, sum(cd.cantidad) as cant, min(preciocompra),
max(preciocompra),

SUM(CASE WHEN extract(month from c.fecha_factura)=1 THEN
cd.cantidad*cd.preciocompra ELSE 0 END) AS importe_enero,

SUM(CASE WHEN extract(month from c.fecha_factura)=1 THEN cd.cantidad ELSE 0
END) AS cant_enero,

MIN(CASE WHEN extract(month from c.fecha_factura)=1 THEN cd.preciocompra
ELSE 0 END) AS precio_min_enero,

MAX(CASE WHEN extract(month from c.fecha_factura)=1 THEN cd.preciocompra
ELSE 0 END) AS precio_max_enero,

(SUM(CASE WHEN extract(month from c.fecha_factura)=1 THEN
cd.cantidad*cd.preciocompra ELSE 0 END)/

SUM(CASE WHEN extract(month from c.fecha_factura)=1 THEN cd.cantidad ELSE 0
END) ) as media_enero

FROM compras cd inner join compra c on cd.idcompras=c.idcompras 

WHERE trim(cd.codigo)='90-131-00-00001' and c.fecha_factura>='2015-01-01' 

GROUP BY cd.codigo

 

Trabajo con porstgres 9.0

Responder a