Гость
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Цикл / 5 сообщений из 5, страница 1 из 1
01.06.2020, 15:58
    #39965067
Caxa_ASS
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Цикл
Добрый день.

Есть таблица заказов Order, в которой есть колонка Datatime (начинается с 2017-01-01 00:00:00.000 и по сегодняшний день).
Также, есть колонка количества заказов (QuantityOrder), в которую каждый день записываются заказы от клиентов.

Допустим, чтобы узнать какое количество заказов было сделано всеми клиентами в один определенный день, пишу такой запрос:

Код: sql
1.
2.
select sum(QuantityOrder) from Order
where Datatime >= '20170101' and Datatime < '20170102' 



Как правильно создать запрос, чтобы циклически пройтись с подсчетом суммы заказов по каждому дню, до сегодня?

Буду благодарен за помощь.
...
Рейтинг: 0 / 0
01.06.2020, 16:00
    #39965068
Гавриленко Сергей Алексеевич
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Цикл
Код: sql
1.
2.
3.
4.
5.
select r.dt, sum(QuantityOrder) from Order
cross apply ( select dt = cast (Datatime as date) ) r
where Datatime >= '20170101' --and Datatime < '20170102' 
group by r.dt
order by r.dt
...
Рейтинг: 0 / 0
01.06.2020, 16:01
    #39965070
msLex
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Цикл
Caxa_ASS
Добрый день.

Есть таблица заказов Order, в которой есть колонка Datatime (начинается с 2017-01-01 00:00:00.000 и по сегодняшний день).
Также, есть колонка количества заказов (QuantityOrder), в которую каждый день записываются заказы от клиентов.

Допустим, чтобы узнать какое количество заказов было сделано всеми клиентами в один определенный день, пишу такой запрос:

Код: sql
1.
2.
select sum(QuantityOrder) from Order
where Datatime >= '20170101' and Datatime < '20170102' 




Как правильно создать запрос, чтобы циклически пройтись с подсчетом суммы заказов по каждому дню, до сегодня?

Буду благодарен за помощь.


если достаточно только тех дней, где были заказы, то group by cast(Datatime as date) + фильтры по датам (если нужен выделенный диапазон дней)
если нужны все дни, даже те, где заказов нет, то нужно все это еще через left join к таблице с календарем "приклеить"
...
Рейтинг: 0 / 0
01.06.2020, 16:14
    #39965076
Caxa_ASS
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Цикл
Гавриленко Сергей Алексеевич,
Спасибо большое, все работает.
...
Рейтинг: 0 / 0
01.06.2020, 16:15
    #39965077
Caxa_ASS
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Цикл
msLex,
Спасибо, по определенному диапазону дней, так же работает.
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Цикл / 5 сообщений из 5, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]