CONN#16210

svn path=/Customer/trunk/; revision=13950
This commit is contained in:
Arthur Egberink
2009-09-09 15:44:12 +00:00
parent 1682fbc73c
commit 2f66af6e6c

66
CONN/Once/CONN29.sql Normal file
View File

@@ -0,0 +1,66 @@
-- CONN29
--
--
SET ECHO ON
SPOOL xconn29.lst
PROMPT $Revision: 1 $
/* Update de status van een bestelaanvraag met de laagste status van de aanvraagitems
indien het een aanvraag betreft waaraan spook opdrachten zitten */
UPDATE bes_bestelling b
SET bes_bestelling_status =
(SELECT MIN (bes_bestelling_item_status)
FROM bes_bestelling_item bi
WHERE b.bes_bestelling_key = bi.bes_bestelling_key)
WHERE b.bes_bestelling_key IN
(SELECT b.bes_bestelling_key
FROM bes_bestelling b, bes_bestelopdr_item oi, bes_bestelopdr o
WHERE b.bes_bestelling_key || '/1' = bes_bestelopdr_id
AND o.bes_bestelopdr_key = oi.bes_bestelopdr_key
AND NOT EXISTS
(SELECT b.bes_bestelopdr_item_key
FROM bes_bestelling_item b
WHERE b.bes_bestelopdr_item_key =
oi.bes_bestelopdr_item_key));
/* Verwijder bestelopdrachtitems als deze niet gekoppeld zijn aan bestelaanvraag items */
DELETE bes_bestelopdr_item oi
WHERE NOT EXISTS
(SELECT b.bes_bestelopdr_item_key
FROM bes_bestelling_item b
WHERE b.bes_bestelopdr_item_key = oi.bes_bestelopdr_item_key)
AND NOT EXISTS (SELECT f.bes_bestelopdr_key
FROM fin_factuur f
WHERE f.bes_bestelopdr_key = oi.bes_bestelopdr_key);
/* Verwijder bestelopdracht records indien deze geen kinderen (bes_bestelopdr_items) heeft */
DELETE bes_bestelopdr bo
WHERE NOT EXISTS (SELECT boi.bes_bestelopdr_item_key
FROM bes_bestelopdr_item boi
WHERE bo.bes_bestelopdr_key = boi.bes_bestelopdr_key)
AND NOT EXISTS (SELECT f.bes_bestelopdr_key
FROM fin_factuur f
WHERE f.bes_bestelopdr_key = bo.bes_bestelopdr_key);
/* de bes_bestelling_item_cnt moet altijd gelijk zijn aan het aantal bestel_item records. */
UPDATE bes_bestelling b
SET bes_bestelling_item_cnt =
(SELECT COUNT ( * )
FROM bes_bestelling_item i
WHERE i.bes_bestelling_key = b.bes_bestelling_key)
WHERE bes_bestelling_key IN
(SELECT bkey
FROM (SELECT bes_bestelling_key bkey,
bes_bestelling_item_cnt bcnt,
(SELECT COUNT ( * )
FROM bes_bestelling_item i
WHERE i.bes_bestelling_key = b.bes_bestelling_key)
bitem
FROM bes_bestelling b)
WHERE bcnt <> bitem);
COMMIT;
SPOOL OFF
--@conn.sql