UWVA#34720 Herschrijven vanwege traagheid, nu met ANSI JOIN's
svn path=/Website/trunk/; revision=28212
This commit is contained in:
@@ -212,43 +212,51 @@ function fin_list (params)
|
||||
+ " WHERE m.mld_alg_onroerendgoed_keys = onrg.alg_onroerendgoed_keys(+)) mld_fiat_write";
|
||||
|
||||
sql += " FROM fin_factuur f"
|
||||
+ " , (SELECT prs.getkpverantwoordelijke (prs_kostenplaats_key, 2, -1) budgethouder,"
|
||||
+ " kp.*"
|
||||
+ " FROM prs_kostenplaats kp) k"
|
||||
+ " , mld_opdr o"
|
||||
+ " , mld_melding m"
|
||||
+ " , mld_discipline d"
|
||||
+ " , mld_stdmelding sm"
|
||||
+ " , ins_srtdiscipline sd"
|
||||
+ " , cnt_contract c"
|
||||
+ " , cnt_discipline cd"
|
||||
+ " , bes_bestelopdr bo"
|
||||
+ " , ( SELECT bes_bestelopdr_key,"
|
||||
+ " MIN(bes_srtdeel_key) bes_srtdeel_key,"
|
||||
+ " MIN (bb.prs_kostenplaats_key) prs_kostenplaats_key,"
|
||||
+ " MIN (prs_perslid_key) prs_perslid_key"
|
||||
+ " FROM bes_bestelling bb,"
|
||||
+ " bes_bestelopdr_item boi,"
|
||||
+ " bes_bestelling_item bbi"
|
||||
+ " WHERE bbi.bes_bestelling_key = bb.bes_bestelling_key"
|
||||
+ " AND boi.bes_bestelopdr_item_key = bbi.bes_bestelopdr_item_key"
|
||||
+ " GROUP BY bes_bestelopdr_key) bb";
|
||||
+ " LEFT OUTER JOIN mld_opdr o "
|
||||
+ " ON f.mld_opdr_key = o.mld_opdr_key "
|
||||
+ " LEFT OUTER JOIN mld_melding m "
|
||||
+ " ON o.mld_melding_key = m.mld_melding_key "
|
||||
+ " LEFT OUTER JOIN mld_stdmelding sm "
|
||||
+ " ON m.mld_stdmelding_key = sm.mld_stdmelding_key "
|
||||
+ " LEFT OUTER JOIN mld_discipline d "
|
||||
+ " ON sm.mld_ins_discipline_key = d.ins_discipline_key "
|
||||
+ " LEFT OUTER JOIN ins_srtdiscipline sd "
|
||||
+ " ON d.ins_srtdiscipline_key = sd.ins_srtdiscipline_key "
|
||||
+ " LEFT OUTER JOIN cnt_contract c "
|
||||
+ " ON f.cnt_contract_key = c.cnt_contract_key "
|
||||
+ " LEFT OUTER JOIN cnt_discipline cd"
|
||||
+ " ON c.ins_discipline_key = cd.ins_discipline_key"
|
||||
+ " LEFT OUTER JOIN bes_bestelopdr bo"
|
||||
+ " ON f.bes_bestelopdr_key = bo.bes_bestelopdr_key "
|
||||
+ " LEFT OUTER JOIN ( SELECT boi.bes_bestelopdr_key, "
|
||||
+ " MIN (bes_srtdeel_key) bes_srtdeel_key, "
|
||||
+ " MIN (bb.prs_kostenplaats_key) "
|
||||
+ " prs_kostenplaats_key, "
|
||||
+ " MIN (bb.prs_perslid_key) prs_perslid_key "
|
||||
+ " FROM bes_bestelling bb, "
|
||||
+ " bes_bestelopdr_item boi, "
|
||||
+ " bes_bestelling_item bbi "
|
||||
+ " WHERE bbi.bes_bestelling_key = bb.bes_bestelling_key "
|
||||
+ " AND boi.bes_bestelopdr_item_key = "
|
||||
+ " bbi.bes_bestelopdr_item_key "
|
||||
+ " GROUP BY boi.bes_bestelopdr_key) bb "
|
||||
+ " ON f.bes_bestelopdr_key = bb.bes_bestelopdr_key "
|
||||
+ " LEFT OUTER JOIN (SELECT prs.getkpverantwoordelijke ( "
|
||||
+ " prs_kostenplaats_key, "
|
||||
+ " 2, "
|
||||
+ " -1) "
|
||||
+ " budgethouder, "
|
||||
+ " kp.* "
|
||||
+ " FROM prs_kostenplaats kp) k "
|
||||
+ " ON k.prs_kostenplaats_key = COALESCE (bb.prs_kostenplaats_key, "
|
||||
+ " c.prs_kostenplaats_key, "
|
||||
+ " o.prs_kostenplaats_key, "
|
||||
+ " m.prs_kostenplaats_key) ";
|
||||
|
||||
sql += " WHERE COALESCE (bb.prs_kostenplaats_key,"
|
||||
+ " c.prs_kostenplaats_key,"
|
||||
+ " o.prs_kostenplaats_key,"
|
||||
+ " m.prs_kostenplaats_key) = k.prs_kostenplaats_key" // JGL: Erg veel outer joins omdat niet
|
||||
+ " AND f.mld_opdr_key = o.mld_opdr_key(+)" // vast staat in welke tak we zitten
|
||||
+ " AND o.mld_melding_key = m.mld_melding_key(+)"
|
||||
+ " AND m.mld_stdmelding_key = sm.mld_stdmelding_key(+)"
|
||||
+ " AND sm.mld_ins_discipline_key = d.ins_discipline_key(+)"
|
||||
+ " AND d.ins_srtdiscipline_key = sd.ins_srtdiscipline_key(+)"
|
||||
+ " AND f.cnt_contract_key = c.cnt_contract_key(+)"
|
||||
+ " AND c.ins_discipline_key = cd.ins_discipline_key(+)"
|
||||
+ " AND bb.bes_bestelopdr_key(+) = bo.bes_bestelopdr_key"
|
||||
+ " AND f.bes_bestelopdr_key = bo.bes_bestelopdr_key(+)"
|
||||
+ (asContactpersoon
|
||||
? " AND (o.mld_uitvoerende_keys IN (SELECT cp.prs_bedrijf_key"
|
||||
sql += "WHERE 1=1"; // Nu de where clause bouwen
|
||||
|
||||
if (asContactpersoon)
|
||||
sql +=" AND (o.mld_uitvoerende_keys IN (SELECT cp.prs_bedrijf_key"
|
||||
+ " FROM prs_contactpersoon cp"
|
||||
+ " WHERE cp.prs_perslid_key IN (" + prsKeys + ")"
|
||||
+ " AND cp.prs_contactpersoon_verwijder IS NULL)"
|
||||
@@ -260,8 +268,7 @@ function fin_list (params)
|
||||
+ " FROM prs_contactpersoon cp"
|
||||
+ " WHERE cp.prs_perslid_key IN (" + prsKeys + ")"
|
||||
+ " AND cp.prs_contactpersoon_verwijder IS NULL)"
|
||||
+ " )"
|
||||
: "");
|
||||
+ " )";
|
||||
|
||||
// Als geen FINFOF maar wel FINBOF moet ik ook de alg-scope controleren
|
||||
if (!authparamsFINFOF && authparamsFINBOF && authparamsFINBOF.ALGreadlevel > -1)
|
||||
|
||||
Reference in New Issue
Block a user