Получите последние 30 дней с сегодняшнего дня, и если нет значений, заполните 0 - PullRequest
0 голосов
/ 22 октября 2018

У меня есть запрос на получение значений за последние 30 дней, например:

SELECT CONVERT(VARCHAR(10), AGENDAMENTO.DATA_STATUS, 103) AS DATA, AGENDAMENTO.STATUS,
                                      COUNT(AGENDS.ID) 
                                      FROM [Vivo_TOTALIZADOR].[dbo].AGENDAMENTOS_STATUS AS AGENDAMENTO 
                                      INNER JOIN [Vivo_TOTALIZADOR].[dbo].AGENDAMENTOS AS AGENDS ON AGENDS.ID = AGENDAMENTO.ID_AGENDAMENTO 
                                      WHERE AGENDS.MAT_CONSULTOR = @login AND AGENDS.LOJA = @store
                                      AND AGENDAMENTO.DATA_STATUS >= DATEADD(DAY, -30, GETDATE())
                                      GROUP BY CONVERT(VARCHAR(10), DATA_STATUS, 103), AGENDAMENTO.STATUS ORDER BY DATA DESC

А вот мои данные:

20/10/2018  Scheduled 1
20/10/2018  Didn't Answer   2
20/10/2018  Not Interested  2

И т. Д.

Но дело в том, что могут быть дни, когда пользователь не использует систему, и я хотел бы показать результаты, подобные этому:

20/10/2018  Scheduled 1
20/10/2018  Didn't Answer   2
20/10/2018  Not Interested  2
21/10/2018  Scheduled 0

У меня есть семь значений для статуса:

  1. Запланировано
  2. Неправильный номер
  3. Успешная продажа
  4. Не ответил
  5. В присутствии
  6. Не заинтересован
  7. Занято

Итак, я хотел бы добавить что-то вроде этого:

20/10/2018  Scheduled 1
20/10/2018  Wrong Number    2
20/10/2018  Successful Sale 2
20/10/2018  Didn't Answer 0
20/10/2018  In Attendance 5
20/10/2018  Not Intereseted 2
20/10/2018  Busy 3
21/10/2018  Scheduled 0
21/10/2018  Wrong Number    0
21/10/2018  Successful Sale 0
21/10/2018  Didn't Answer 0
21/10/2018  In Attendance 0
21/10/2018  Not Intereseted 0
21/10/2018  Busy 0

* Предполагается, что пользователь не использовал систему 21 /10

Исходя из сегодняшней даты, могу ли я это подтвердить?

...