SUM を使用したこのサブクエリに問題があります。クエリは、特定の日付範囲からの複数のレコードの利益列を合計します。この総利益を、レコードに添付された口座番号でグループ化しています。口座番号が 1 つの場合は、問題なく機能します。
select
[ACCOUNT ID],
(
select SUM(PROFIT)
from [Transaction Table]
where [ACCOUNT ID] in ('1001')
and [ACTIVITY DATE] in ('5/31/2012')
) as 'May Profit'
from
[Transaction Table]
where
[ACCOUNT ID] in ('1001')
group by
[ACCOUNT ID]
正しい結果が得られます:
| ACCOUNT ID | May Profit |
---------------------------
| 1001 | $61.97 |
問題は、複数のアカウント番号で発生します。
select
[ACCOUNT ID],
(
select SUM(PROFIT)
from [Transaction Table]
where [ACCOUNT ID] in ('1001','2001')
and [ACTIVITY DATE] in ('5/31/2012')
) as 'May Profit'
from
[Transaction Table]
where
[ACCOUNT ID] in ('1001','2001')
group by
[ACCOUNT ID]
間違った結果が得られます:
| ACCOUNT ID | May Profit |
---------------------------
| 1001 | $127.34 |
| 2001 | $127.34 |
「5 月の利益」は、各レコードの両方のアカウントで合計されています。口座番号ごとの個々の利益合計が必要です。
何かご意見は?前もって感謝します!