0
テーブル「FinancialTrans」には多くのフィールドがありますが、それらのフィールドのうち3つだけが私に関係しています。私は必要なものSQL Serverで複数の条件が発生するケース
AcctID TransTypeCode DateOfTrans Field 4 Field 5 Field 6....
123 TOLL 2016-06-06
123 TOLL 2016-06-02
123 TOLL 2016-04-28
123 PYMT 2016-03-11
123 TOLL 2015-12-22
123 TOLL 2015-12-22
:
私は最後の2年間にはTOLLまたはPYMTが存在しないときの旗を印刷する必要があります。平野ロジックでそう
:
select *,
(case when max(case when FT.TransTypeCode in ('TOLL', 'PYMT')
then FT.DateOfTrans
end)
over (partition by FT.Acctid) >= dateadd(year, -2, getdate())
then 0 else 1
end) as MyFlag
from #temp_TableA A
INNER JOIN FinancialTrans FT ON A.AccountId = FT.AcctId
しかし、このコードはFinancialTransテーブルの他のすべてのフィールドに沿ってもたらし、そのアカウントの各行を結合します
(When TransTypeCode is 'TOLL' and the MAX(DateOfTrans) is more than 2 years ago) AND
(When TransTypeCode is 'PYMT' and the MAX(DateOfTrans) is more than 2 years ago)
だから私のコードは、これまでのところです前の表の番号。したがって、私は各口座番号に対して約1200の重複を取得します。
質問:
1.どのように私は、各口座番号1200個の重複を得ることはありませんか?
2.上記の2つの条件が満たされたときにフラグを与える列を取得する方法を教えてください。
ここで質問は何ですか? –
私はあなたが達成しようとしていたことについてはっきりしていませんでした。しかし、私はあなたにダウンボントを与えませんでした。 –