用于选择记录的SQL逻辑

时间:2015-09-14 13:03:28

标签: sql

我正在寻找一个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。

1 个答案:

答案 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将其视为特定命令。