我試圖做的非常簡單的查詢。SQL選擇帶有最大日期和最大最大日期的收費代碼語句
我試圖選擇具有兩個日期的收費代碼:
1)最近/ MAX生效日期和 2),表中的最近/ MAX日期之前發生的日期。
收費代碼在表中列出了許多次與各種相應的生效日期。部分收費代碼僅列出一個生效日期,其他收費代碼列出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]
我知道我不能引用表的外部查詢的子查詢中加入(即使它是在同一個表),但如何將我做類似的事情?或者你會如何建議獲得第二次最大日期?
不幸的是表中沒有行號。
請幫忙。 謝謝。
樣品結果
費用代碼最大日期日期之前最大
38066 2013年2月1日2013年2月1日
38073 2013年2月1日2013年2月1日
根據你的語法似乎你使用SQL Server。如果這個權利? – 2013-04-09 18:11:46
假設SQL服務器,你需要'外部應用'而不是'LEFT JOIN' ... – a1ex07 2013-04-09 18:13:05
@PM 77-1是SQL Server – 2013-04-09 18:16:54