Code:
SELECT
ALUMUTATIE.cltnr AS klantnummer,
ALUCLIENT.faccltnr,
ALUMUTATIE.wksnr AS uvwcode,
Concat(ALUMUTATIE.wksnr, ' - ', ALUWERKSOORT.omsch) AS UVWOmschrijvingFull,
ALUMUTATIE.jaar AS opdracht,
Year(ALUMUTATIE.mudat) AS MuatieJaar,
ALUDECLARATIE.decnr,
ALUDECLARATIE.datum_aanmaak AS decdt,
ALUDECLARATIE.facjr,
ALUDECLARATIE.facdt,
ALUDECLARATIE.facpr,
ALUDECLARATIE.facnr,
DatePart(mm, ALUDECLARATIE.facdt) - 1 AS Periode,
Sum(ALUMUTATIE.mutbd) AS Januari,
0 AS februari,
0 AS maart,
0 AS april,
0 AS mei,
0 AS juni,
0 AS juli,
0 AS augustus,
0 AS september,
0 AS oktober,
0 AS november,
0 AS december,
ALUWERKSOORTGROEP.wgrnr,
ALUWERKSOORTGROEP.omsch
FROM
ALUMUTATIE
LEFT JOIN ALUDECLARATIE ON ALUMUTATIE.decnr = ALUDECLARATIE.decnr
LEFT JOIN ALUWERKSOORT ON ALUMUTATIE.wksnr = ALUWERKSOORT.wksnr
INNER JOIN RELATIE Medewerker ON Medewerker.dossiernum = ALUMUTATIE.mdwnr
INNER JOIN RELATIE Klant ON Klant.dossiernum = ALUMUTATIE.cltnr
LEFT JOIN ALUWERKSOORTGROEP ON ALUWERKSOORT.admnr = ALUWERKSOORTGROEP.admnr AND ALUWERKSOORT.wgrnr =
ALUWERKSOORTGROEP.wgrnr
INNER JOIN ALUCLIENT ON ALUCLIENT.relnr = Klant.relnr
WHERE
ALUMUTATIE.corcd = 0 AND
ALUMUTATIE.type = 1 AND
((DatePart(mm, DateAdd(m, -1, ALUDECLARATIE.facdt)) = 1) OR
(DatePart(mm, DateAdd(m, -1, ALUDECLARATIE.datum_aanmaak)) = 1)) AND
((ALUDECLARATIE.facnr IS NULL AND
ALUCLIENT.faccltnr IS NOT NULL) OR
(ALUDECLARATIE.facnr IS NOT NULL) OR
(ALUDECLARATIE.decnr IS NOT NULL))
GROUP BY
ALUMUTATIE.cltnr,
ALUCLIENT.faccltnr,
ALUMUTATIE.wksnr,
Concat(ALUMUTATIE.wksnr, ' - ', ALUWERKSOORT.omsch),
ALUMUTATIE.jaar,
Year(ALUMUTATIE.mudat),
ALUDECLARATIE.decnr,
ALUDECLARATIE.datum_aanmaak,
ALUDECLARATIE.facjr,
ALUDECLARATIE.facdt,
ALUDECLARATIE.facpr,
ALUDECLARATIE.facnr,
ALUWERKSOORTGROEP.wgrnr,
ALUWERKSOORTGROEP.omsch
UNION ALL
SELECT
ALUMUTATIE.cltnr AS klantnummer,
ALUCLIENT.faccltnr,
ALUMUTATIE.wksnr AS uvwcode,
Concat(ALUMUTATIE.wksnr, ' - ', ALUWERKSOORT.omsch) AS UVWOmschrijvingFull,
ALUMUTATIE.jaar AS opdracht,
Year(ALUMUTATIE.mudat) AS MuatieJaar,
ALUDECLARATIE.decnr,
ALUDECLARATIE.datum_aanmaak AS decdt,
ALUDECLARATIE.facjr,
ALUDECLARATIE.facdt,
ALUDECLARATIE.facpr,
ALUDECLARATIE.facnr,
DatePart(mm, ALUDECLARATIE.facdt) - 1 AS Periode,
0 AS Januari,
Sum(ALUMUTATIE.mutbd) AS februari,
0 AS maart,
0 AS april,
0 AS mei,
0 AS juni,
0 AS juli,
0 AS augustus,
0 AS september,
0 AS oktober,
0 AS november,
0 AS december,
ALUWERKSOORTGROEP.wgrnr,
ALUWERKSOORTGROEP.omsch
FROM
ALUMUTATIE
LEFT JOIN ALUDECLARATIE ON ALUMUTATIE.decnr = ALUDECLARATIE.decnr
LEFT JOIN ALUWERKSOORT ON ALUMUTATIE.wksnr = ALUWERKSOORT.wksnr
INNER JOIN RELATIE Medewerker ON Medewerker.dossiernum = ALUMUTATIE.mdwnr
INNER JOIN RELATIE Klant ON Klant.dossiernum = ALUMUTATIE.cltnr
LEFT JOIN ALUWERKSOORTGROEP ON ALUWERKSOORT.admnr = ALUWERKSOORTGROEP.admnr AND ALUWERKSOORT.wgrnr =
ALUWERKSOORTGROEP.wgrnr
INNER JOIN ALUCLIENT ON ALUCLIENT.relnr = Klant.relnr
WHERE
ALUMUTATIE.corcd = 0 AND
ALUMUTATIE.type = 1 AND
((DatePart(mm, DateAdd(m, -1, ALUDECLARATIE.facdt)) = 2) OR
(DatePart(mm, DateAdd(m, -1, ALUDECLARATIE.datum_aanmaak)) = 2)) AND
((ALUDECLARATIE.facnr IS NULL AND
ALUCLIENT.faccltnr IS NOT NULL) OR
(ALUDECLARATIE.facnr IS NOT NULL) OR
(ALUDECLARATIE.decnr IS NOT NULL))
GROUP BY
ALUMUTATIE.cltnr,
ALUCLIENT.faccltnr,
ALUMUTATIE.wksnr,
Concat(ALUMUTATIE.wksnr, ' - ', ALUWERKSOORT.omsch),
ALUMUTATIE.jaar,
Year(ALUMUTATIE.mudat),
ALUDECLARATIE.decnr,
ALUDECLARATIE.datum_aanmaak,
ALUDECLARATIE.facjr,
ALUDECLARATIE.facdt,
ALUDECLARATIE.facpr,
ALUDECLARATIE.facnr,
ALUWERKSOORTGROEP.wgrnr,
ALUWERKSOORTGROEP.omsch
Het voordeel hiervan is dat het werkt. Het nadeel is dat de query heel erg groot wordt. Maar mijn gevoel zegt dat dit makkelijk kan echter zie ik niet hoe. Iemand een idee?
Bookmarks