有一点疑问。
我有2个具有以下结构的表
状态表
S_ID | filename | addresscode | Total_Count | Vendor_Count | Co_Count | Cust_Count | Completion_Date
记录表
R_ID | filename | addresscode | Date | From | To | Quantity
我正在编写一个触发器,它根据插入记录表中的值更新Status stable的值。我希望发生以下情况(插入的故事是i,状态表是f):
更新状态表
如果i.From =' Cust'然后SET Cust_Count = f.Cust_Count - i.Quantity
如果i.To ='供应商'然后SET Vendor_Count = f.Vendor_Count + i.Quantity
我知道我必须使用Case
,但我无法制定正确的语法。请帮忙。
如果可能的话,还有另一个(奖金)小查询 - 我应该怎么做 - >我想将状态表更新为
答案 0 :(得分:0)
假设i.From<> i。以下CASE
为您提供所需的值
CASE
WHEN i.From = 'Vendor' THEN Vendor_Count - i.Quantity
WHEN i.To = 'Vendor' THEN Vendor_Count + i.Quantity
ELSE Vendor_Count
END,
CASE
WHEN i.From = 'Co' THEN Co_Count - i.Quantity
WHEN i.To = 'Co' THEN Co_Count + i.Quantity
ELSE Co_Count
END,
CASE
WHEN i.From = 'Cust' THEN Cust_Count - i.Quantity
WHEN i.To = 'Cust' THEN Cust_Count + i.Quantity
ELSE Cust_Count
END
加成:
CASE
WHEN i.To = 'Cust' & IF (f.cust_count + i.quantity == f.total_count) THEN i.Date
ELSE Completion_Date
END