SQL唯一行

时间:2018-07-27 16:26:12

标签: sql-server

输出前的数据

Data before Output

SQL的新手。在数据中,我需要一个SQL查询,该查询将以如下方式返回行:如果Init is not null,则按月返回Att Date的最大值,否则应仅返回日期。因此,以上示例的输出需要如下所示。

输出

Output

1 个答案:

答案 0 :(得分:0)

使用group by

select ID, FORMAT(AsgnDate, 'dd/MM/yyyy', 'en-us') AsgnDate
,FORMAT(AttDate, 'dd/MM/yyyy', 'en-us') AttDate , 
case when max(INIT) is null then '' else max(INIT) end as INIT from t
group by ID, AsgnDate,AttDate

http://www.sqlfiddle.com/#!18/6a1f8/9

ID  AsgnDate    AttDate INIT
1   01/05/2018  22/05/2018  ABC
1   01/05/2018  28/06/2018  
1   01/05/2018  10/07/2018  
2   01/05/2018  09/05/2018  DEF
2   01/05/2018  25/07/2018