0

我有一张包含以下数据的表格

建筑西装 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,并且必须在一个单元格/行中。这最终将成为子查询的一部分,到目前为止,我没有得到我所期望的查询。

提前致谢。

4

2 回答 2

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
于 2012-09-24T16:13:30.343 回答
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
于 2012-09-24T16:10:26.710 回答