2012-09-24 61 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