..

TO
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 3
0

.

VT
  • 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:

Kopiuj
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;

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.