Расчет последнего дня каждого месяца - PullRequest
0 голосов
/ 22 марта 2019

У меня есть таблица X, которая содержит данные за каждый день для бренда. Данные за каждый день являются кумулятивными, то есть данные о продажах для 3 будут иметь данные за 1, 2 и 3. Таким образом, данные за последний день каждого месяца будут продажами за этот месяц для данного бренда и компании. Я хочу получить сумму всех продаж для этого бренда за последние 3 месяца, исключая текущий месяц в последний день каждого месяца. то есть за март: я хочу продажи с 31 января 2019 года + 28 февраля 2019 года + 31 декабря 2018 года для каждого бренда и компании. Как мне этого добиться?

Ответы [ 2 ]

0 голосов
/ 22 марта 2019

Допустим, имя вашего столбца, представляющего дату продажи, равно "sales_date", тогда следующий предикат даст вам дни, которые вас интересуют:

sales_date in (
    dateadd(day, -1, dateadd(month, datediff(month, 0, getdate()) - 2, 0)),
    dateadd(day, -1, dateadd(month, datediff(month, 0, getdate()) - 1, 0)),
    dateadd(day, -1, dateadd(month, datediff(month, 0, getdate()), 0))
)
0 голосов
/ 22 марта 2019

если вы используете MSSQL, вы можете использовать функцию EOMONTH, например, как под

DECLARE @date VARCHAR(255) = '2/24/2019';  
SELECT EOMONTH ( @date ) AS Result;  

для MySQL вы можете использовать функцию LAST_DAY

SELECT LAST_DAY('2019-02-24');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...