Advertisement
Guest User

Untitled

a guest
Mar 27th, 2017
54
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
SQL 1.58 KB | None | 0 0
  1. USE NTU
  2. GO
  3. CREATE TRIGGER maak_bedrag_na_insert ON aankoop
  4. AFTER INSERT
  5. AS
  6. BEGIN
  7.  SET NOCOUNT ON;
  8.  
  9.    DECLARE
  10.    @aankoop_nr INT,
  11.    @aantal INT,
  12.    @prijs money,
  13.    ----------------------------------
  14.  
  15.    
  16.     @aantalretour INT,
  17.     @order_id INT,
  18.     @product_id INT,
  19.     @oudbedrag MONEY,
  20.     @oudaantal INT,
  21.     @retournummer INT;
  22.    
  23.  
  24.  
  25.    SELECT @aantalretour = inserted.aantal
  26.    FROM inserted;
  27.  
  28.    SELECT @order_id = inserted.[ORDER]
  29.    FROM inserted;
  30.  
  31.    SELECT @product_id = inserted.prod
  32.    FROM inserted;
  33.  
  34.    SELECT @retournummer = inserted.retour
  35.    FROM inserted;
  36.  
  37.    SELECT @oudbedrag = aankoop.bedrag
  38.    FROM aankoop
  39.    WHERE [ORDER] = @order_id AND aankoop.retour IS NULL;
  40.  
  41.    SELECT @oudaantal = aankoop.aantal
  42.    FROM aankoop
  43.    WHERE [ORDER] = @order_id AND aankoop.retour IS NULL;
  44.    ----------------------------------------
  45.     SELECT @aankoop_nr = inserted.aankoop_nr
  46.     FROM inserted;
  47.  
  48.     SELECT @aantal = inserted.aantal
  49.     FROM inserted;
  50.  
  51.     SELECT @prijs = prijs FROM
  52.     product WHERE prod_nr = @product_id;
  53.     -----------------------------------
  54.  
  55.    
  56.      
  57.    IF @retournummer IS NULL
  58.    
  59.     UPDATE aankoop
  60.     SET bedrag = @prijs * @aantal
  61.     WHERE aankoop_nr = @aankoop_nr;
  62.    
  63.    
  64.    IF @retournummer IS NOT NULL
  65.    IF @aantalretour>@oudaantal AND @aantalretour <0
  66.    ROLLBACK TRANSACTION
  67.    ELSE
  68.  
  69.    UPDATE aankoop
  70.    SET bedrag = -(@oudbedrag / @oudaantal) * @aantalretour
  71.    WHERE aankoop_nr = @aankoop_nr;
  72.    
  73.    UPDATE aankoop
  74.    SET aantal = @aantalretour*-1
  75.    WHERE  aankoop.[ORDER] = @order_id AND aankoop.retour = @retournummer;
  76.  
  77. END
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement