Как обновить диапазон дат в нескольких областях запроса - PullRequest
0 голосов
/ 02 октября 2019

Я хотел бы обновить диапазоны дат для всех запросов ниже (1 августа - 31 августа 2019 г.) до 1 - 30 сентября 2019 г., не изменяя их вручную. Есть идеи?

Вот два запроса, которые у меня есть:

- MTD Gross Charges

SELECT 
'$' + CONVERT(varchar,CAST(SUM(TX_AMOUNT) AS money),1) AS [HB Charges ($)]
FROM HSP_TRANSACTIONS
WHERE TX_POST_DATE BETWEEN '2019-08-01' AND '2019-08-31'
AND TX_TYPE_HA_C = '1'

- MTD Cash Collections

SELECT
'$' + CONVERT(varchar,cast(SUM(TX_AMOUNT *-1) -
    (SELECT
    SUM(TX_AMOUNT *-1) 
    FROM HSP_TRANSACTIONS 
    WHERE TX_POST_DATE BETWEEN '2019-08-01' AND '2019-08-31'
    AND TX_TYPE_HA_C = '2'
    AND BAD_DEBT_FLAG_YN = 'Y'
    GROUP BY TX_TYPE_HA_C) AS money),1) AS [HB Payments ($)]
FROM HSP_TRANSACTIONS 
WHERE TX_POST_DATE BETWEEN '2019-08-01' AND '2019-08-31'
AND TX_TYPE_HA_C = '2'
GROUP BY TX_TYPE_HA_C

Поскольку я выполняю эти запросы (и более) ежемесячно, я ищу простой способ изменить все экземпляры

WHERE TX_POST_DATE BETWEEN '2019-08-01' AND '2019-08-31' 

на

WHERE TX_POST_DATE BETWEEN '2019-09-01' AND '2019-09-30'

... затем в следующем месяцедо

WHERE TX_POST_DATE BETWEEN '2019-10-01' AND '2019-10-31'

1 Ответ

0 голосов
/ 02 октября 2019

Почему бы просто не настроить логику для запуска в текущем месяце?

SELECT '$' + CONVERT(varchar,CAST(SUM(TX_AMOUNT) AS money),1) AS [HB Charges ($)]
FROM HSP_TRANSACTIONS
WHERE TX_POST_DATE >= DATEFROMPARTS(YEAR(GETDATE()), MONTH(GETDATE()), 1) AND
      TX_POST_DATE < DATEADD(MONTH, 1, DATEFROMPARTS(YEAR(GETDATE()), MONTH(GETDATE()), 1)) AND
      TX_TYPE_HA_C = '1'

Тогда код будет выполняться только в текущем месяце. Или вы можете вычесть другой месяц, если хотите запустить его за предыдущий месяц.

Для предыдущего месяца вы должны использовать:

WHERE TX_POST_DATE >= DATEADD(MONTH, -2, DATEFROMPARTS(YEAR(GETDATE()), MONTH(GETDATE()), 1)) AND
      TX_POST_DATE < DATEADD(MONTH, -1, DATEFROMPARTS(YEAR(GETDATE()), MONTH(GETDATE()), 1)) AND
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...