Как я могу написать запрос на сервере SQL для сбора данных за предыдущий месяц? - PullRequest
0 голосов
/ 23 апреля 2020

Моя задача состоит в том, чтобы собрать данные за предыдущий месяц, используя max (date) для набора данных. Например, если мой MAX (DISCHARGE DATE) = 12 апреля 2020 года.

Я бы хотел, чтобы мой запрос захватывал данные с 1 марта 2020 года по 31 марта 2020 года.

select [ENC_KEY_MAIN], MAX([Discharge Date]) AS LastActivity 
from vw_HOME_CLINTIGRITY 
group by [ENC_KEY_MAIN] 
having MAX([Discharge Date]) < DATEADD(MM, -3, MAX([Discharge Date])); 

Ответы [ 2 ]

0 голосов
/ 23 апреля 2020

объявить @dt int = выбрать месяц (макс. ([Дата выписки])) - 1 из vw_HOME_CLINTIGRITY

выбрать [ENC_KEY_MAIN], DATENAME (MONTH, getdate () - 29) AS LastActivity из vw_HOME_CLINTIGRITY

где месяц ([Дата выписки]) =@dt

0 голосов
/ 23 апреля 2020

Вы можете использовать EOMONTH() и DATEADD() в качестве

DECLARE @MXD DATE = (SELECT EOMONTH(MAX(Col), -1) FROM Table);

SELECT *
FROM Table
WHERE Col <= @MXD
      AND 
      Col >= DATEADD(Day, -(DAY(@MXD)-1), @MXD);

. Здесь db <> скрипка

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...