我有两张桌子
- 包表:packageid、数量
- 交易表:transactionid、packageid、数量
每当获得“ package
”时,都会在“ ”表中创建一个条目transactions
,以及获得的数量。可以执行多个' transactions
',并且当完全获得包裹时,该包裹的所有交易的总和应该等于包裹表中该包裹的数量。
我想写一个 SQL 语句来检查一个特定的 packageid 是否没有被完全获取,即:
- 未执行任何交易
- 已执行交易,但所有交易的数量之和小于包裹表中的数量
我怎样才能做到这一点?我尝试使用的每个加入都只为 2 号服务,但不考虑没有交易的包裹
我试过:
select package.packageid, package.quantity, sum(transactions.quantity) from package join transactions on package.packageid = transactions.packageid where package.quantity > sum(transactions.quantity)
也试过左加入,但它不起作用。理想情况下,我希望结果中左侧表中列出的所有包在必要时右侧为空值