2

给定两个这样的表:

Date | Client | Category | Amount1 | x
A      B        C          234
X      Y        Z          456

MonthDate | Client | Category | Amount2 | y
B           C        D          567
A           B        C          123

如何找到 x.Month(Date) = y.MonthDate、x.Client = y.Client 和 x.Category = y.Category 的记录?

我需要能够为某些客户显示 Amount1 - Amount 2 = Net。

4

2 回答 2

1

直接的解释

SELECT x.Date, y.MonthDate, X.Client, Y.Category, X.Amount1 - Y.Amount2 Nett
FROM TBL1 X
JOIN TBL2 Y ON Month(x.Date) = y.MonthDate
           AND x.Client = y.Client
           AND x.Category = y.Category

但是,如果其中一个是月度发票和其他原始记录,那么您可能需要汇总:

SELECT y.MonthDate, Y.Client, Y.Category, ISNULL(SUM(X.Amount1),0) - Y.Amount2 Nett
FROM TBL1 X
RIGHT JOIN TBL2 Y ON Month(x.Date) = y.MonthDate
           AND x.Client = y.Client
           AND x.Category = y.Category
GROUP BY y.MonthDate, Y.Client, Y.Category, Y.Amount2
于 2012-10-22T20:27:56.420 回答
1

尝试使用join

select x.Client, x.Amount1 - y.Amount2 as NET
from tableX x
join tableY y on x.Date = y.MonthDate
              and x.Client = y.Client
              and x.Category = y.Category
于 2012-10-22T20:28:45.467 回答