@inneks

SQL сумма продажи за день?

Есть таблица, день продажи билета и сумма, например за 11.06.2020 продано 20 билетов как вывести на сумму 4349 р
(в 8.00 2 билета зв 200 р... в 9.00 4 билета за 400р и так далее)
как вывести
дата            выручка
11.06.2020      4349 р
12.06.2020      5767 р


сделал запрос но он выводит все дни и суммирует просто со следующей продажей по времени , т.е. не группирует
SELECT 
     payment_date AS date,
     SUM(amount)  OVER (ORDER BY  payment_date ASC) AS daily_income
FROM 
    payment 
 where month(payment_date)=7 and year (payment_date) =2005   
ORDER BY date


вот еще такой
select payment_date as date, sum(amount) as daily_income 
 from payment
 where month(payment_date)=7 and year (payment_date) =2005
group by date

а этот запрос выводит так, тоже не группирует
1       2005-07-08 03:17:05	5.99
2	2005-07-08 07:33:56	5.99
3	2005-07-09 13:24:07	4.99
4	2005-07-09 16:38:01	4.99
  • Вопрос задан
  • 67 просмотров
Решения вопроса 2
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
SELECT DATE(payment_date) AS `date`, SUM(amount) AS income
  FROM payment
  WHERE payment_date >= '2005-07-01' AND payment_date < '2005-08-01'
  GROUP BY `date`
Ответ написан
@inneks Автор вопроса
select date(payment_date) as `date`, sum(amount) as daily_income 
from payment
where month(payment_date)=7 and year (payment_date) =2005
group by `date`

Этот запрос отработал !!!
1 2005-07-08 2210.88
2 2005-07-09 2075.87
3 2005-07-11 1938.39
4 2005-07-27 2726.51
5 2005-07-28 2577.80
6 2005-07-29 2721.59
Спасибо Rsa97
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@alexalexes
В зависимости от диалекта SQL нужно округлить дату до дней или выделить только дату без времени, чтобы правильно сгруппировать сумму.
Например, с помощью trunc так это делается в Oracle:
select trunc(payment_date) as p_date, sum(amount) as daily_income 

 from payment

 where extract(month from payment_date) = 7
     and extract(year from payment_date) = 2005 -- про extract - тоже нужно смотреть, как это принято в конкретном диалекте SQL

group by  trunc(payment_date)
order by p_date desc
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы