Я еще новичок в SQL, так что я, возможно, делают это неправильно, но ...SQL Server: Количество различных дат в группе
мне нужно, чтобы получить подсчет различных дат назначения. Так Джон для cust.id 1 должен иметь счетчик 3 даты назначения и Сара должна иметь счетчик 2 даты назначения для cust.id 1.
Temp таблица (EC):
|cust.id | emp_name | emp_id | APPT_DATE | Procedure_Code | something1|
|:------:|:--------:|:------:|:--------------:|:--------------:|:---------:|
| 1 | john | 100 | 2/2 00:00:00 | a0 | w/e |
| 1 | john | 100 | 2/3 00:00:00 | b1 | w/e |
| 1 | john | 100 | 2/4 00:00:00 | c2 | w/e |
| 1 | Sara | 200 | 2/2 00:00:00 | d3 | w/e |
| 1 | Sara | 200 | 2/3 00:00:00 | e4 | w/e |
Ответ Я ищу:
| cust.id | emp_name | emp_id | CNT | APPT_DATE | Procedure_Code |
|:-------:|:--------:|:------:|:---:|:-------------:|:--------------:|
| 1 | john | 100 | 3 | 2/2 00:00:00 | a0101 |
| 1 | john | 100 | 3 | 2/3 00:00:00 | b1234 |
| 1 | john | 100 | 3 | 2/4 00:00:00 | c0101 |
| 1 | Sara | 200 | 2 | 2/2 00:00:00 | d0101 |
| 1 | Sara | 200 | 2 | 2/3 00:00:00 | e1234 |
Мой код:
SELECT cust_id
,emp_name
,emp_id
,COUNT(DISTINCT APPT_DATE)
OVER (PARTITION BY cust_id, APPT_DATE) AS CNT
,APPT_DATE
,Procedure_Code
FROM #EC
ORDER BY cust_id
Но почему ваша процедура_Кода меняется? – Kason
Вы хотели, чтобы отчетный счетчик даты был указан cust id или emp id? В вашем описании указано «cust id», но ваш результат выглядит так: «emp id». EDIT: выглядит как и то, и другое! верный ? – Squirrel
@ Клиенты Loser приходят, чтобы сделать разные вещи. Например, если вы однажды заходите в авторемонт, чтобы получить новые тормозные колодки, а затем получите смену масла. Надеюсь, что имеет смысл – AAlex