ProjID Dno RNo Status DateApproved
100 1 1 Initiated 2014-12-31 09:15:58.000
100 1 1 Approved 2015-01-31 09:15:58.000
100 1 1 Approved 2015-02-01 09:15:58.000
100 1 1 Approved 2015-05-28 09:15:58.000
100 1 1 Approved 2015-06-20 09:15:58.000
101 1 1 Approved 2014-12-31 09:15:58.000
101 1 1 Approved 2015-01-31 09:15:58.000
101 1 1 Approved 2015-02-01 09:15:58.000
101 1 1 Approved 2015-05-28 09:15:58.000
101 1 1 Approved 2015-08-20 09:15:58.000
在上面的示例中,我必须为每个投影获取max(Dateapproved)作为Dateapproved。 如果所有版本状态在特定组中被批准,例如:project id = 101,其组中的所有行都具有状态为Approved,所以我必须获取最大日期:'2015-08-20 09:15:58.000 '但是对于Projectid = 100,一个状态仍处于启动状态,所以我们必须显示Null为Dateapproved。根据条件在组中获取最大值
由于提前
我的输出应该是这样的:
ProjId Dno Rno DateApproved
100 1 1 NUll
101 1 1 2015-08-20 09:15:58.000
示例代码:
Create table #temp(
ProjectID varchar(35),
Documentno int,
Revisionno int,
Status varchar(35),
DateApproved Datetime)
insert into #temp values ('100', 1, 1, 'Initiated','2014-12-31 09:15:58')
insert into #temp values ('100', 1, 1, 'Approved','2015-01-31 09:15:58 ')
insert into #temp values ('100', 1, 1, 'Approved','2015-02-01 09:15:58 ')
insert into #temp values ('100', 1, 1, 'Approved','2015-05-28 09:15:58 ')
insert into #temp values ('100', 1, 1, 'Approved','2015-06-20 09:15:58 ')
insert into #temp values ('101', 1, 1, 'Approved','2014-12-31 09:15:58 ')
insert into #temp values ('101', 1, 1, 'Approved','2015-01-31 09:15:58 ')
insert into #temp values ('101', 1, 1, 'Approved','2015-02-01 09:15:58 ')
insert into #temp values ('101', 1, 1, 'Approved','2015-05-28 09:15:58 ')
insert into #temp values ('101', 1, 1, 'Approved','2015-08-20 09:15:58 ')
select * from #temp
您能否提供您的愿望输出以匹配您的数据样本?您的问题描述非常模糊。也请阅读[** How to ask **](http://stackoverflow.com/help/how-to-ask) \t \t \t \t [**如何创建一个最小,完整和可验证的示例。 **](http://stackoverflow.com/help/mcve) –