我有一张包含以下数据的表格
建筑西装 SQFT 日期 1 1 1,000 2012 年 9 月 24 日 1 1 1,500 2011 年 12 月 31 日 1 2 800 2012 年 8 月 31 日 1 2 500 2005 年 10 月 1 日
我想编写一个查询,将每个西装记录的最大日期相加,因此所需的结果将是 1,800,并且必须在一个单元格/行中。这最终将成为子查询的一部分,到目前为止,我没有得到我所期望的查询。
提前致谢。
您可以使用以下内容(参见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
; 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