ここに私が持っているテーブルがあります:
AB タプル テーブル A.id、B.id、C.units のエントリを持つ C テーブル C.id のエントリを持つ D テーブル 同じ A を持つ C.id を持つ D テーブルのすべてのエントリをカウントしたい.id と B.id を取得し、同じ A.id と B.id を持つすべての C.units の合計からその数を減算して、新しい列「差分」として表示します。
したがって、クエリで「違い」、共通の A.id および共通の B.id を 1 行で返すようにしたい
カウントが 0 で、「差」が sum(C.units) と等しい場合にもエントリを返す必要があります。
例えば
D table
D.id = 1, open=true, D.CID = 2
D.id = 2, open=true, D.CID = 3
D.id = 3, open=true, D.CID = 3
D.id = 4, open=true, D.CID = 4
C table
C.id = 2, A.id = 3, B.id = 5, units =4
C.id = 3, A.id = 3, B.id = 5, units = 6
C.id = 4, A.id = 4, B.id = 6, units = 8
C.id = 5, A.id = 4, B.id = 6, units = 10
Bc D の最初の 3 つのエントリには、同じエントリでカウントされる同じ AID と BID を持つ CID があります。また、同じ A.id と B.id を持つ C エントリの単位は合計されます。C エントリに関連する D エントリがない場合でも。したがって、クエリは次の 2 つのエントリを返す必要があります。
1. difference = (6+4)-3 = 7 A.id = 3 B.id = 5
2. difference = (10+8)-1 = 17 A.id = 4 B.id = 6