2

次のような 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

ただし、そのうちの1つが月次請求書であり、他の生のレコードである場合は、集計の後である可能性があります。

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 に答える