Despachos
Vehiculos
categoria
El sistema es un control de despacho de combustibles, en la tabla despachos tiene un campo integer que indica si el combustible es gasolina o gasoil, lo que necesito es obtener un resumido del dia de los despachos realizados agrupados por categorias y tipo de combustible, algo asi:
[table]
[tr]
[td]CATEGORIA[/td]
[td][/td]
[td]GASOLINA[/td]
[td]GASOIL[/td]
[/tr]
[tr]
[td][/td]
[td][/td]
[td][/td]
[/tr]
[tr]
[td]VEHICULOS INTERNOS[/td]
[td][/td]
[td]15[/td]
[td]393[/td]
[/tr]
[tr]
[td]VEHICULOS PRIVADOS[/td]
[td][/td]
[td]120[/td]
[td]12[/td]
[/tr]
[tr]
[td]PLANTAS ELECTRICAS[/td]
[td][/td]
[td]9[/td]
[td]1340[/td]
[/tr]
[tr]
[td]PEAJES[/td]
[td][/td]
[td]0[/td]
[td]0[/td]
[/tr]
[tr]
[td]BOULEVARDS[/td]
[td][/td]
[td]0[/td]
[td]0[/td]
[/tr]
[tr]
[td]AYUDANTIAS[/td]
[td][/td]
[td]0[/td]
[td]0[/td]
[/tr]
[/table]
Con esta consulta que me proporcionó mi estimado egostar:
select
c.cat_nombre,
(select sum(d.desp_cant) from despachos d where d.desp_comb = 1 and d.ve_id = v.ve_id and d.desp_tipo = 'AN') as GASOLINA,
(select sum(d1.desp_cant) from despachos d1 where d1.desp_comb = 2 and d1.ve_id = v.ve_id and d1.desp_tipo = 'AN') as GASOIL
from categoria c
left join vehiculos v on v.ve_categoria = c.cat_id
Obtengo categorias dividas y repetidas y con valores nulo, alguien tiene una mejor idea, pues bienvenido sea

Saludos.