私がやろうとしている非常に単純なクエリ。
2 つの日付を持つ請求コードを選択しようとしています。
1) 最新/MAX 発効日、および 2) テーブル内の最新/MAX 日付より前の日付。
請求コードは、対応するさまざまな発効日とともに表に何度もリストされています。一部の請求コードは、1 つの発効日のみで 1 回リストされ、その他は 8 つの発効日で 8 回リストされます。
これが私がやろうとしていることです:
select
BP.[mnemonic] [Charge Code]
,MAX (BP.[std_effective_date]) [Max date]
,BP2.[Date Prior to Max]
from
[TABLE1] BP
left outer join
(select distinct [mnemonic], MAX ([std_effective_date]) [Max Date]
from
[TABLE1]
where [std_effective_date] < BP.[std_effective_date] group by [mnemonic]) BP2
ON BP.[mnemonic] = BP2.[mnemonic]
where
BP.[mnemonic] IN ('38066','38073','38080')
group by BP.[mnemonic]
結合のサブクエリで外部クエリのテーブルを参照できないことはわかっていますが (同じテーブルであっても)、どうすれば同様のことができますか? または、2番目の最大日付を取得することをどのように提案しますか?
残念ながら、テーブルに行番号はありません。
助けてください。ありがとう。
サンプル結果
請求コード 最大日付 最大前の日付
38066 2013-02-01 2013-02-01
38073 2013-02-01 2013-02-01