.
..
- Rejestracja: dni
- Ostatnio: dni
- Postów: 167
2
Po kiego Ci grupowanie w podzapytaniu i po co count, skoro go nie używasz? to chyba można wywalić: count(distinct tuh.LMS_UDA1).
Ten ogromny switch można przerzucić do jakiejś tabelki słownikowej.
Na polu: user_id powinien być założony index
zacząłbym od wywalenia tego podzapytania z joina. Możesz też spróbowac zamienić join na where exist.
cuś takiego:
select /*+ CHOOSE */ tuh.user_id LOGIN, tuh.LMS_UDA10 DANE_PRACOWNIKA, sum(tuh.cases) KARTONY,
suma( kejsy)
from transaction_upload_his tuh1
where
/*join*/
left outer join on transaction_upload_his tuh2
tuh1.user_id=tuh2.user_id
and tuh2.PROCESS_ID='PTSCLS'
and to_date(to_char(end_time,'DDMMYY HH24:MI'),'DDMMYY HH24:MI') between to_date('&&data1','DDMMYY hh24:mi:ss')
and to_date('&&data2','DDMMYY hh24:mi:ss')
/*warunki na tuh1*/
where tuh.PROCESS_ID='PTSPIK'
and to_date(to_char(end_time,'DDMMYY HH24:MI'),'DDMMYY HH24:MI') between to_date('&&data1','DDMMYY hh24:mi:ss')
and to_date('&&data2','DDMMYY hh24:mi:ss')
and tuh.cases is not null
and tuh.facility_id='GF'
group by tuh1.user_id, tuh1.LMS_UDA10;