Sql - Рассчитать сумму за последние 7 дней - PullRequest
0 голосов
/ 20 ноября 2018

Я пытаюсь написать sql, где я могу вернуть сумму за каждый день, используя groupBy за ДАТУ.

Мои поля - сумма и транзакция_даты, а мой sql:

select id,    
Amount as amount,    
transactionDate as transaction_date      
from transaction    
WHERE transactionDate IN (SELECT DISTINCT TOP 7 transactionDate from transaction
order by transactionDate)

Итак,мой синтаксис sql неправильный, и я не могу понять, что делать дальше.

Ответы [ 3 ]

0 голосов
/ 20 ноября 2018

Попробуйте следующим образом

select date(transactionDate) as transaction_date  
sum(Amount) as amount           
from transaction    
WHERE date(transactionDate)>=  DATE_ADD(current_date(),INTERVAL -7 DAY)
group by date(transactionDate)

Кстати Top - это ключевое слово сервера sql, а не mysql

0 голосов
/ 20 ноября 2018

Спасибо всем, вы даете мне путь, по которому я могу пойти и закончить.Я нашел решение.Большое спасибо.

 SELECT
 DATE(transaction_date) AS TransactionDate, SUM(amount) AS Amount
 FROM transaction
 WHERE type = 'spend'
 AND transaction_date>=  DATE_ADD(NOW(), INTERVAL -7 DAY)
 GROUP BY TransactionDate
0 голосов
/ 20 ноября 2018

использовать агрегацию и группировать по

select transactionDate     
sum(Amount) as amount,    
from transaction  
where transactionDate>=cast(now()-INTERVAL -7 DAY as date) and transactionDate<cast(now() as date)
group by transactionDate 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...