|
Получить данные за 3 месяца и 2 недели 🠗 (Волшебник 01.04.2025 09:32) | ☑ | ||
---|---|---|---|---|
0
pythel
01.04.25
✎
09:29
|
Добрый день! Попалась на курсе задача: вывести данные по 3 прошлым месяца от даты, указанной в параметре и 2 прошлым неделям.
Подскажите пожалуйста как правильно это сделать? В запросе использовать "ДобавитьКДате", или программно устанавливать значение даты каждого параметра? (Месяц1, месяц2 и т.п.). или есть способ красивее и проще? Вот запрос: |ВЫБРАТЬ | ПродажиОбороты.Период КАК Период, | СУММА(ПродажиОбороты.СтоимостьОборот) КАК Месяц1 |ПОМЕСТИТЬ ВТ1 |ИЗ | РегистрНакопления.Продажи.Обороты(, , Месяц, ) КАК ПродажиОбороты |ГДЕ | МЕСЯЦ(ПродажиОбороты.Период) = МЕСЯЦ(&Месяц1) | И ПродажиОбороты.ДокументПродажи.Контрагент = &Контрагент | |СГРУППИРОВАТЬ ПО | ПродажиОбороты.Период |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | ПродажиОбороты.Период КАК Период, | СУММА(ПродажиОбороты.СтоимостьОборот) КАК Месяц2 |ПОМЕСТИТЬ ВТ2 |ИЗ | РегистрНакопления.Продажи.Обороты(, , Месяц, ) КАК ПродажиОбороты |ГДЕ | МЕСЯЦ(ПродажиОбороты.Период) = МЕСЯЦ(&Месяц2) | И ПродажиОбороты.ДокументПродажи.Контрагент = &Контрагент | |СГРУППИРОВАТЬ ПО | ПродажиОбороты.Период |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | ПродажиОбороты.Период КАК Период, | СУММА(ПродажиОбороты.СтоимостьОборот) КАК Месяц3 |ПОМЕСТИТЬ ВТ3 |ИЗ | РегистрНакопления.Продажи.Обороты(, , Месяц, ) КАК ПродажиОбороты |ГДЕ | МЕСЯЦ(ПродажиОбороты.Период) = МЕСЯЦ(&Месяц3) | И ПродажиОбороты.ДокументПродажи.Контрагент = &Контрагент | |СГРУППИРОВАТЬ ПО | ПродажиОбороты.Период |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | ПродажиОбороты.Период КАК Период, | СУММА(ПродажиОбороты.СтоимостьОборот) КАК Неделя1 |ПОМЕСТИТЬ ВТНеделя1 |ИЗ | РегистрНакопления.Продажи.Обороты(, , Неделя, ) КАК ПродажиОбороты |ГДЕ | НЕДЕЛЯ(ПродажиОбороты.Период) = НЕДЕЛЯ(&Неделя1) | И ПродажиОбороты.ДокументПродажи.Контрагент = &Контрагент | |СГРУППИРОВАТЬ ПО | ПродажиОбороты.Период |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | ПродажиОбороты.Период КАК Период, | СУММА(ПродажиОбороты.СтоимостьОборот) КАК Неделя2 |ПОМЕСТИТЬ ВТНеделя2 |ИЗ | РегистрНакопления.Продажи.Обороты(, , Неделя, ) КАК ПродажиОбороты |ГДЕ | НЕДЕЛЯ(ПродажиОбороты.Период) = НЕДЕЛЯ(&Неделя2) | И ПродажиОбороты.ДокументПродажи.Контрагент = &Контрагент | |СГРУППИРОВАТЬ ПО | ПродажиОбороты.Период |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | СУММА(ВТ1.Месяц1) КАК Месяц1, | СУММА(ВТ2.Месяц2) КАК Месяц2, | СУММА(ВТ3.Месяц3) КАК Месяц3, | ВТНеделя1.Неделя1 КАК Неделя1, | ВТНеделя2.Неделя2 КАК Неделя2 |ИЗ | ВТ2 КАК ВТ2, | ВТ1 КАК ВТ1, | ВТ3 КАК ВТ3, | ВТНеделя1 КАК ВТНеделя1, | ВТНеделя2 КАК ВТНеделя2 | |СГРУППИРОВАТЬ ПО | ВТНеделя1.Неделя1, | ВТНеделя2.Неделя2" |
|||
1
PR
01.04.25
✎
09:32
|
Как мне развидеть этот ужас?
Что мешало сделать одну таблицу, нахрена пять? И почему левое соединение, а не объединение Что ты вообще хочешь, чудовище? :)) |
|||
2
Волшебник
01.04.25
✎
09:32
|
Это же Вам задача! Вот Вы и делайте!
|
|||
3
PR
01.04.25
✎
09:33
|
(2) А потом эти люди показывают дипломы о прохождении VIP-курсов и требуют зарплаты в полляма
|
|||
4
Волшебник
01.04.25
✎
09:56
|
(3) Мерзавцы!
|
|||
5
Мультук
гуру
01.04.25
✎
10:15
|
(0)
Бот же. Кик его. |
|||
6
pythel
01.04.25
✎
10:16
|
Ничего не требую) Не работаю программистом и никогда не собираюсь), просто пока учусь в институте прохожу несколько курсов "для себя", поэтому просто интересно как это можно сделать одной таблицей и вывести нужные данные
|
|||
7
Волшебник
01.04.25
✎
10:28
|
(6) Пошёл ты нахрен!
|
|||
8
Мультук
гуру
01.04.25
✎
10:29
|
Сарказм
Эх. Такое нужно не в тествой базе запускать, а в продакшене. Да и отбор по контрагенту в самом начале ограничивает выборку и "портит всю малину" |ВЫБРАТЬ | СУММА(ВТ1.Месяц1) КАК Месяц1, | СУММА(ВТ2.Месяц2) КАК Месяц2, | СУММА(ВТ3.Месяц3) КАК Месяц3, | ВТНеделя1.Неделя1 КАК Неделя1, | ВТНеделя2.Неделя2 КАК Неделя2 |ИЗ | ВТ2 КАК ВТ2, | ВТ1 КАК ВТ1, | ВТ3 КАК ВТ3, | ВТНеделя1 КАК ВТНеделя1, | ВТНеделя2 КАК ВТНеделя2 | |СГРУППИРОВАТЬ ПО | ВТНеделя1.Неделя1, | ВТНеделя2.Неделя2 |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |