如何总结两个表的结果?

时间:2012-10-25 06:13:13

标签: sql

SupplierId NetAmt
1          400
2          400
3          300
2          200

SupplierId RecdAmt
2          200
2          200
2          200

预见结果:

1   400
3   300

第一张表是内向表,第二张表是付款表,当我向完全付款的供应商付款时不应再次显示

2 个答案:

答案 0 :(得分: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

答案 1 :(得分: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

分别需要GROUP BY供应商的每个表格和加入摘要。