CONN#16210
svn path=/Customer/trunk/; revision=13950
This commit is contained in:
66
CONN/Once/CONN29.sql
Normal file
66
CONN/Once/CONN29.sql
Normal 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
|
||||
Reference in New Issue
Block a user