我正在寻找一个SQL来选择以下记录:
订单表:
order total item
1 2
2 1
3 2
订单明细表:
Order Item (QTY = 1 for all)
1 A
1 B
2 A
3 A
3 B
3 C
库存表:
Item QTY
A 1
B 1
C 1
如果任何订单不符合QTY,我的SQL应删除该订单。
请建议我如何编写此SQL。
答案 0 :(得分:0)
我想你会尝试为每次购买或其他东西写一张支票。因此,您需要一个脚本来检查是否有足够的项目进行购买(一行)。诀窍之类的东西就是诀窍(PS:这是t-sql方言,我不确定你的语言是什么留下了你的语言,因为你的方言没有说明。)
select a.[order], a.item, b.Qty, b.Qty-1 as Qty_After_Purchase
from Order_Detail as a
left outer join Inventory_Table as b
on a.item=b.item
where (b.Qty-1)<0
然后确保没有执行购买,或者请求被回滚,或者放在等待名单上,或者其他什么。请注意,这是每一行。如果你需要其他东西,请在你的问题中说明。
现在,我并非100%确定这是你想要的......
PS:在t-sql中你必须放置&#39; order&#39;之间&#39; [&#39;和&#39;]&#39;,因为elms dbms将其视为特定命令。