Запрос SQL для получения записей за последние 30 дней (не за последние 30 дней) - PullRequest
2 голосов
/ 25 октября 2019

Я хочу найти разные проценты моего значения за последние 30 дней с предыдущим значением за последние 30 дней. Я уже получил сумму за последние 30 дней. Как получить сумму за предыдущие 30 дней?

Это был запрос для выбора суммы за последние 30 дней.

SELECT SUM(paymentAmount) as usd30day
FROM `tbl_pi_payment` 
WHERE currencyCode = 'USD' and renewalDate >= NOW() - INTERVAL 30 DAY

Пример: сегодня 25 октября. У меня есть сумма значений за период с 25 октября по 26 сентября. Теперь мне нужна сумма значений с 26 сентября по 25 августа

Ответы [ 3 ]

2 голосов
/ 25 октября 2019

Вы можете попробовать ниже -

SELECT SUM(case when renewalDate >= NOW() - INTERVAL 30 DAY paymentAmount else 0 end) as usd30day ,
SUM(case when renewalDate >= NOW() - INTERVAL 60 DAY and renewalDate < NOW() - INTERVAL 30 DAY paymentAmount else 0 end) as usd60day
FROM tbl_pi_payment
WHERE currencyCode = 'USD' 
1 голос
/ 25 октября 2019

получение предыдущих транзакций на основе renewalDate

select sum(case when renewalDate >= NOW() - INTERVAL 30 DAY then paymentAmount else 0 end) as usd30day 
    , sum(case when datediff(now() - renewalDate) <= 30 then paymentAmount else 0 end) as usd30prevday 
from tbl_pi_payment 
where 
    currencyCode = 'USD' 
0 голосов
/ 25 октября 2019
SELECT datediff(NOW(), renewalDate) % 30 as every30day, SUM(paymentAmount) as usd30day
FROM `tbl_pi_payment`
WHERE currencyCode = 'USD' 
GROUP BY datediff(NOW(), renewalDate) % 30
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...