2012-09-24 66 views
0

我有一個表具有以下數據總結多個記錄通過的maxDate

 
Bldg  Suit SQFT  Date 
1   1  1,000 9/24/2012    
1   1  1,500 12/31/2011 
1   2  800  8/31/2012 
1   2  500  10/1/2005 

我想寫一個查詢,將總結每個訴訟記錄的最大日期,所以期望的結果將是1800,而絕在一個單元/行中。這最終將成爲子查詢的一部分,我只是沒有得到我期待已久的問題。

在此先感謝。

+2

您正在使用哪個數據庫管理系統? – Vikdor

回答

0
; With Data As 
(
    Select Bldg, Suit, SQFT, Row_Number() Over (Partition By Bldg, Suit Order By Date DESC) As RowID 
    From YourTableNameHere 
) 
Select Bldg, Sum(SQFT) As TotalSQFT 
From Data 
Where RowId = 1 
Group By Bldg 
+0

對不起,我應該指定,我正在使用T SQL。我正努力與這兩者合作,迄今爲止,沒有運氣。我會繼續努力的,謝謝你的幫助! – user1689297

1

您可以使用以下(見SQL Fiddle with Demo):

select sum(t1.sqft) Total 
from yourtable t1 
inner join 
(
    select max(dt) mxdt, suit, bldg 
    from yourtable 
    group by suit, bldg 
) t2 
    on t1.dt = t2.mxdt 
    and t1.bldg = t2.bldg 
    and t1.suit = t2.suit