私は2つのテーブルを持っています
- パッケージ表: packageid、数量
- トランザクション テーブル: transactionid、packageid、数量
「 」が取得されるたびに、取得された数量とともにpackage
「 」テーブルにエントリが作成されます。transactions
複数の ' transactions
' を実行でき、パッケージが完全に取得されると、そのパッケージのすべてのトランザクションの合計は、パッケージ テーブル内のそのパッケージの数量と等しくなります。
特定の packageid が完全に取得されていないかどうかを確認する SQL ステートメントを書きたいと思います。
- トランザクションは実行されませんでした
- トランザクションが実行されましたが、すべてのトランザクションの数量の合計がパッケージ テーブルの数量よりも少なくなっています
どうすればこれを達成できますか?私が使用しようとしているすべての結合は、番号 2 のみに対応していますが、トランザクションのないパッケージは考慮されていません
私は試した:
select package.packageid, package.quantity, sum(transactions.quantity) from package join transactions on package.packageid = transactions.packageid where package.quantity > sum(transactions.quantity)
左結合も試しましたが、うまくいきません。理想的には、必要に応じて右側に null 値を付けて、結果の左側の表からリストされたすべてのパッケージが必要です