Optimisation LEFT avec CASE WHEN
Bonjour,
J'ai une jointure qui prend un max de temps à s'executer à cause des CASE imbriqués.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
|
LEFT JOIN BATCHES BA ON CASE BA.TYPE
WHEN 'RAW'
THEN CASE WHEN h.po_hdr_key = BA.XCOMMANDNO THEN ELSE 0
END
WHEN 'FP'
THEN CASE WHEN d.in_item_key = 'SF900016' OR d.in_item_key LIKE 'BCF%' THEN
CASE WHEN h.ln_cdehdr_nocommande = BA.XCOMMANDNO THEN 1
ELSE
CASE WHEN h.ln_cdehdr_nocommande = BA.XCOMMANDNO AND d.en_lot_key = BA.BATCHNO AND d.in_item_key = BA.XCODEADAGE THEN 1 ELSE 0 END
END
ELSE 0
END
END = 1 |
Comment optimiser ceci?