DJIN#87336 Views aanpassen zodat ze 1 regel aan resultaten opleveren, zoals gewenst. Het conflict dat ontstond bij meerdere werkplekken met hetzelfde volgnr. is verholpen door een group by prs_key, volgnr en een MIN om de werkplek key heen
svn path=/Database/trunk/; revision=67904
This commit is contained in:
@@ -639,54 +639,55 @@ CREATE_VIEW(prs_v_hoofdperslidwerkplek2, 0)
|
||||
prs_werkplek_key,
|
||||
aantal
|
||||
)
|
||||
AS
|
||||
SELECT prs_perslid_key, pwp.prs_werkplek_key, 1
|
||||
FROM prs_perslidwerkplek pwp, prs_werkplek wp
|
||||
WHERE pwp.prs_werkplek_key = wp.prs_werkplek_key
|
||||
AND wp.prs_werkplek_virtueel = 0
|
||||
AND NOT EXISTS
|
||||
(SELECT ''
|
||||
FROM prs_perslidwerkplek pwp2, prs_werkplek wp2
|
||||
WHERE pwp.prs_perslid_key = pwp2.prs_perslid_key
|
||||
AND pwp2.prs_werkplek_key = wp2.prs_werkplek_key
|
||||
AND wp2.prs_werkplek_virtueel = 0
|
||||
AND pwp.prs_werkplek_key <> pwp2.prs_werkplek_key
|
||||
AND COALESCE (pwp2.prs_perslidwerkplek_volgnr, 10000 + pwp2.prs_perslidwerkplek_key) <=
|
||||
COALESCE (pwp.prs_perslidwerkplek_volgnr, 10000 + pwp.prs_perslidwerkplek_key));
|
||||
AS -- Kies bij gelijke volgnummers degene met de laagste prs_werkplek_key
|
||||
SELECT prs_perslid_key, MIN (pwp.prs_werkplek_key), 1
|
||||
FROM prs_perslidwerkplek pwp, prs_werkplek wp
|
||||
WHERE pwp.prs_werkplek_key = wp.prs_werkplek_key
|
||||
AND wp.prs_werkplek_virtueel = 0
|
||||
AND NOT EXISTS
|
||||
(SELECT ''
|
||||
FROM prs_perslidwerkplek pwp2, prs_werkplek wp2
|
||||
WHERE pwp.prs_perslid_key = pwp2.prs_perslid_key
|
||||
AND pwp2.prs_werkplek_key = wp2.prs_werkplek_key
|
||||
AND wp2.prs_werkplek_virtueel = 0
|
||||
AND pwp.prs_werkplek_key <> pwp2.prs_werkplek_key
|
||||
AND COALESCE (pwp2.prs_perslidwerkplek_volgnr, 10000 + pwp2.prs_perslidwerkplek_key) <
|
||||
COALESCE (pwp.prs_perslidwerkplek_volgnr, 10000 + pwp.prs_perslidwerkplek_key))
|
||||
GROUP BY pwp.prs_perslid_key, COALESCE (pwp.prs_perslidwerkplek_volgnr, 10000 + pwp.prs_perslidwerkplek_key);
|
||||
|
||||
CREATE_VIEW(prs_v_hoofdperslidwerkplek, 0)
|
||||
AS
|
||||
SELECT prs_perslid_key,
|
||||
MAX (pwp.prs_werkplek_key) prs_werkplek_key,
|
||||
1 aantal
|
||||
FROM prs_perslidwerkplek pwp, prs_werkplek wp
|
||||
WHERE pwp.prs_werkplek_key = wp.prs_werkplek_key
|
||||
AND wp.prs_werkplek_virtueel = 0
|
||||
GROUP BY prs_perslid_key
|
||||
HAVING COUNT (pwp.prs_werkplek_key) = 1
|
||||
UNION ALL
|
||||
SELECT prs_perslid_key, pwp.prs_werkplek_key, 2
|
||||
FROM prs_perslidwerkplek pwp, prs_werkplek wp
|
||||
WHERE pwp.prs_werkplek_key = wp.prs_werkplek_key
|
||||
AND wp.prs_werkplek_virtueel = 0
|
||||
AND NOT EXISTS
|
||||
(SELECT ''
|
||||
FROM prs_perslidwerkplek pwp2, prs_werkplek wp2
|
||||
WHERE pwp.prs_perslid_key = pwp2.prs_perslid_key
|
||||
AND pwp2.prs_werkplek_key = wp2.prs_werkplek_key
|
||||
AND wp2.prs_werkplek_virtueel = 0
|
||||
AND pwp.prs_werkplek_key <> pwp2.prs_werkplek_key
|
||||
AND COALESCE (pwp2.prs_perslidwerkplek_volgnr, 10000+pwp2.prs_perslidwerkplek_key) <
|
||||
COALESCE (pwp.prs_perslidwerkplek_volgnr, 10000+pwp.prs_perslidwerkplek_key))
|
||||
AND NOT EXISTS
|
||||
( SELECT prs_perslid_key
|
||||
FROM prs_perslidwerkplek pwp3, prs_werkplek wp3
|
||||
WHERE pwp3.prs_werkplek_key = wp3.prs_werkplek_key
|
||||
AND wp3.prs_werkplek_virtueel = 0
|
||||
AND pwp3.prs_perslid_key = pwp.prs_perslid_key
|
||||
GROUP BY prs_perslid_key
|
||||
HAVING COUNT (pwp3.prs_werkplek_key) = 1);
|
||||
|
||||
SELECT prs_perslid_key,
|
||||
MAX (pwp.prs_werkplek_key) prs_werkplek_key,
|
||||
1 aantal
|
||||
FROM prs_perslidwerkplek pwp, prs_werkplek wp
|
||||
WHERE pwp.prs_werkplek_key = wp.prs_werkplek_key
|
||||
AND wp.prs_werkplek_virtueel = 0
|
||||
GROUP BY prs_perslid_key
|
||||
HAVING COUNT (pwp.prs_werkplek_key) = 1
|
||||
UNION ALL
|
||||
SELECT prs_perslid_key, MIN(pwp.prs_werkplek_key), 2
|
||||
FROM prs_perslidwerkplek pwp, prs_werkplek wp
|
||||
WHERE pwp.prs_werkplek_key = wp.prs_werkplek_key
|
||||
AND wp.prs_werkplek_virtueel = 0
|
||||
AND NOT EXISTS
|
||||
(SELECT ''
|
||||
FROM prs_perslidwerkplek pwp2, prs_werkplek wp2
|
||||
WHERE pwp.prs_perslid_key = pwp2.prs_perslid_key
|
||||
AND pwp2.prs_werkplek_key = wp2.prs_werkplek_key
|
||||
AND wp2.prs_werkplek_virtueel = 0
|
||||
AND pwp.prs_werkplek_key <> pwp2.prs_werkplek_key
|
||||
AND COALESCE (pwp2.prs_perslidwerkplek_volgnr, 10000 + pwp2.prs_perslidwerkplek_key) <
|
||||
COALESCE (pwp.prs_perslidwerkplek_volgnr, 10000 + pwp.prs_perslidwerkplek_key))
|
||||
AND NOT EXISTS
|
||||
( SELECT prs_perslid_key
|
||||
FROM prs_perslidwerkplek pwp3, prs_werkplek wp3
|
||||
WHERE pwp3.prs_werkplek_key = wp3.prs_werkplek_key
|
||||
AND wp3.prs_werkplek_virtueel = 0
|
||||
AND pwp3.prs_perslid_key = pwp.prs_perslid_key
|
||||
GROUP BY prs_perslid_key
|
||||
HAVING COUNT (pwp3.prs_werkplek_key) = 1)
|
||||
GROUP BY prs_perslid_key, COALESCE (pwp.prs_perslidwerkplek_volgnr, 10000 + pwp.prs_perslidwerkplek_key);
|
||||
|
||||
CREATE_VIEW(prs_v_werkplek_gegevens,0)
|
||||
(
|
||||
|
||||
Reference in New Issue
Block a user