我的表格有Name, EmpName, Date
列。对于不同的Name
和EmpName
值,Date
每月应仅为一个值
例如:
Name EmpName Date
-----------------------
abc emp1 3/19/2018
abc emp1 3/22/2018 (This record should be rejected)
xyz emp2 3/15/2018 valid record
我写了这样的东西
SELECT
name, empname,
ROW_NUMBER() OVER (PARTITION BY YEAR(date), MONTH(date) ORDER BY date DESC)
我被困在写CASE
声明
答案 0 :(得分:1)
您可以使用row_number()
:
select top (1) with ties t.*
from table t
order by row_number() over (partition by name, empname, year(date), month(date) order by date);
但是,基于示例数据,简单聚合也可以:
select name, empname, min(date)
from table t
group by name, empname, year(date), month(date);