Bom dia , criei um sql para listar na mesma consulta valores vendidos por histórico e seus totais. Gostaria de saber se tem uma forma mais otimizada de fazer isto. select cd_filial,to_char(dt_mvto,'dd/mm/yyyy')Data_Transacao, to_char (SUM(CASE WHEN cd_historico in(181) THEN (vl_historico) ELSE 0 END),'9990D99')as Visa_Eletron, to_char (SUM(CASE WHEN cd_historico in(324) THEN (VL_HISTORICO) ELSE 0 END),'9990D99')as Maestro, to_char (SUM(CASE WHEN cd_historico in(181,324) THEN (VL_HISTORICO) ELSE 0 END),'9990D99')as TOTAL_VISA_ELETRON_MAESTRO, to_char (SUM(CASE WHEN cd_historico in(443) THEN (VL_HISTORICO) ELSE 0 END),'9990D99')aS VISA, to_char (SUM(CASE WHEN cd_historico in(444) THEN (VL_HISTORICO) ELSE 0 END),'9990D99')as MASTERCARD, to_char (SUM(CASE WHEN cd_historico in(443,444) THEN (VL_HISTORICO) ELSE 0 END),'9990D99')as TOTAL_VISA_MASTERCARD from scxmvhis where dt_mvto between '12/12/2012' and '12/12/2012' and cd_historico in (181,324,443,444) group by cd_filial, dt_mvto order by cd_filial