1
SupplierId NetAmt
1          400
2          400
3          300
2          200

SupplierId RecdAmt
2          200
2          200
2          200

期待される結果:

1   400
3   300

最初のテーブルは内部テーブルで、2 番目のテーブルは支払いテーブルです。支払いが完全に完了したサプライヤーに支払いを行うと、再び表示されません。

4

2 に答える 2

1

あなたはこのようにすることができます

select SupplierId , NetAmt from table1 
where SupplierId  not in (select SupplierId from table2)

また

これを試すこともできます

SELECT SupplierId , NetAmt
FROM Table1 t1
    LEFT JOIN Table2 t2 ON t1.SupplierId = t2.SupplierId 
WHERE t2.SupplierId IS NULL
于 2012-10-25T06:15:36.523 に答える
0

サプライヤーごとにバランスをとる必要があるようです

SELECT ISNULL(NetTable.SupID, RecTable.SupID) AS SupID, (ISNULL(NetTable.TotalNet,0) - ISNULL(RecTable.TotalRec,0)) AS BalAmt
FROM (SELECT SupID, SUM(NetAmt) AS TotalNet FROM Table_1 GROUP BY SupID) AS NetTable
LEFT OUTER JOIN
(SELECT SupID, SUM(RecAmt) AS TotalRec FROM Table_2 GROUP BY SupID) AS RecTable
ON NetTable.SupID = RecTable.SupID
WHERE NetTable.TotalNet <> RecTable.TotalRec

各テーブルを個別にグループ化し、集計を結合する必要があります。

于 2012-10-25T06:26:13.230 に答える