isso Marciel, eu me equivoquei no exemplo
o correto é agrupar apenas por produto e descrição, mas podendo usar o filtro de datas
eu fiz algo parecido, fiz uma view aberta, e um cursor buscando essa view e agrupando, conforme abaixo:
repare que dessa forma eu consigo usar o BETWEEN, mas preciso popular uma tabela temporária pra depois exibir as informações no Form conforme minha necessidade, eu queria fazer isso mais diretamente, sem precisar usar desse artifício
Selecionar tudo
--
-- Agrupamento externo para permitir a utilização dos parametros
-- PC_DATA_INICIAL e PC_DATA_FINAL na view internamente
--
CURSOR c_transb(pc_data_inicial DATE
,pc_data_final DATE
,pc_org_id NUMBER
,pc_transbordo NUMBER
,pc_terminal NUMBER
,pc_cliente_final_id NUMBER) IS
SELECT slc_agrup.cliente_final_id
,slc_agrup.cliente_final_desc
,slc_agrup.org_id
,slc_agrup.transbordo
,slc_agrup.transbordo_desc
,slc_agrup.terminal
,slc_agrup.terminal_desc
,slc_agrup.porto
,slc_agrup.porto_desc
,SUM(slc_agrup.qtd_carregada_nf) qtd_carregada_nf
,SUM(slc_agrup.transito1) transito1
,SUM(slc_agrup.est_terceiro) est_terceiro
,SUM(slc_agrup.transito2) transito2
,SUM(slc_agrup.vlr_porto) vlr_porto
FROM (SELECT xotv.cliente_final_id
,xotv.cliente_final_desc
,xotv.org_id
,xotv.trx_date
,xotv.transbordo
,xotv.transbordo_desc
,xotv.terminal
,xotv.terminal_desc
,xotv.porto
,xotv.porto_desc
,xotv.qtd_carregada_nf
,xotv.transito1
,xotv.est_terceiro
,xotv.transito2
,xotv.vlr_porto
FROM apps.xx_om_transbordo_v xotv
WHERE xotv.org_id = pc_org_id
AND xotv.trx_date BETWEEN pc_data_inicial AND pc_data_final
AND (pc_transbordo IS NULL OR xotv.transbordo = pc_transbordo)
AND (pc_terminal IS NULL OR xotv.terminal = pc_terminal)
AND (pc_cliente_final_id IS NULL OR xotv.cliente_final_id = pc_cliente_final_id)) slc_agrup
GROUP BY slc_agrup.cliente_final_id
,slc_agrup.cliente_final_desc
,slc_agrup.org_id
,slc_agrup.transbordo
,slc_agrup.transbordo_desc
,slc_agrup.terminal
,slc_agrup.terminal_desc
,slc_agrup.porto
,slc_agrup.porto_desc;