Отдельные столбцы должны иметь одну дату в месяц в SQL Server - PullRequest
0 голосов
/ 19 марта 2019

В моей таблице есть столбцы 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 заявления

1 Ответ

1 голос
/ 19 марта 2019

Вы можете использовать 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);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...