|
|
Отбор связанных документов по дате СКД Ø (Новиков 09.10.2023 15:07) |
☑ |
|
0
bfss-732
09.10.23
✎
10:27
|
Всем привет!
Есть Заказ Клиента и Реализация, они связанны.
Есть условие для отчета:
В случае, если последняя отгрузка не попадает в диапазон заданных дат, то в отчет этот заказ не выводится.
Как это реализовать?
Пример:
Заказ Клиента №1 05.04.2023
Реализация №1 09.04.2023
Реализация №2 20.04.2023
Реализация №3 11.05.2023
Если в отчете выбран апрель 2023, то заказ в отчет не должен попасть.
Если в отчете выбран апрель - июнь 2023, то должны попасть заказ со всеми реализациями.
Если в отчете выбран июнь 2023, то заказ в отчет не должен попасть.
|
|
|
1
Новиков
09.10.23
✎
11:05
|
Ну а проблема то в чем?
Тебе нужен запрос, основная таблица Реализация, на нее отбор по датам. В левом соединении клеишь твои заказы.
|
|
|
2
Donkey_hot
09.10.23
✎
11:08
|
(0) Не видно проблемы. Собираете временную табличку: заказ (группировка), максимальная дата отгрузки. Далее связываете ее с основной выборкой и накладываете условие по макс. дате.
|
|
|
3
bfss-732
09.10.23
✎
11:19
|
ВЫБРАТЬ
ЗаказКл.Ссылка КАК Заказ,
РеализТУг.Ссылка КАК Реализация
ИЗ
Документ.РеализацияТоваровУслуг КАК РеализТУг
ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЗаказКлиента КАК ЗаказКл
ПО (РеализТУг.ЗаказКлиента = ЗаказКл.Ссылка)
ГДЕ
ЗаказКл.Ссылка = &Ссылка
И РеализТУг.Проведен
И РеализТУг.Дата <= &ДатаКонца
И РеализТУг.Дата >= &ДатаНачала
СГРУППИРОВАТЬ ПО
ЗаказКл.Ссылка,
РеализТУг.Ссылка
Все равно тянет строчки, а должно быть пусто в результате запроса
|
|
|
4
bfss-732
09.10.23
✎
11:20
|
(1) не так просто как кажется)
|
|
|
5
Donkey_hot
09.10.23
✎
11:45
|
(3) Ну так Вы не сделали временную табличку с макс.датой, потому и тянет.
|
|
|
6
bfss-732
09.10.23
✎
12:19
|
Надо было именно в запросе все колхозить. Максимальная, минимальная не прокатывает, решил по другому:
ВЫБРАТЬ
ЗаказКл.Ссылка КАК Заказ,
КОЛИЧЕСТВО(РАЗЛИЧНЫЕ РеализацияТУ.Ссылка) КАК КоличестоВсего
ПОМЕСТИТЬ ВременнаяТаблица
ИЗ
Документ.РеализацияТоваровУслуг КАК РеализацияТУ
ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ЗаказКлиента КАК ЗаказКл
ПО (РеализацияТУ.ЗаказКлиента = ЗаказКл.Ссылка)
ГДЕ
РеализацияТУ.Проведен
И ЗаказКл.Ссылка = &Ссылка
СГРУППИРОВАТЬ ПО
ЗаказКл.Ссылка
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
ЗаказКл.Ссылка КАК Заказ,
РеализТУ.Ссылка КАК Реализация,
КОЛИЧЕСТВО(РАЗЛИЧНЫЕ РеализТУ.Ссылка) КАК КоличествоОтборПоДате
ПОМЕСТИТЬ ВТ
ИЗ
Документ.РеализацияТоваровУслуг КАК РеализТУ
ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЗаказКлиента КАК ЗаказКл
ПО РеализТУ.ЗаказКлиента = ЗаказКл.Ссылка
ГДЕ
ЗаказКл.Ссылка = &Ссылка
И РеализТУ.Проведен
И РеализТУ.Дата <= &ДатаКонца
И РеализТУ.Дата >= &ДатаНачала
СГРУППИРОВАТЬ ПО
ЗаказКл.Ссылка,
РеализТУ.Ссылка
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
ВТ.Заказ КАК Заказ,
СУММА(ВТ.КоличествоОтборПоДате) КАК КоличествоОтборПоДате
ПОМЕСТИТЬ ВременнаяТаблица1
ИЗ
ВТ КАК ВТ
СГРУППИРОВАТЬ ПО
ВТ.Заказ
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
ВЫБОР
КОГДА ВременнаяТаблица.КоличестоВсего <= ВременнаяТаблица1.КоличествоОтборПоДате
ТОГДА ВременнаяТаблица1.Заказ
КОНЕЦ КАК Заказ
ИЗ
ВременнаяТаблица КАК ВременнаяТаблица,
ВременнаяТаблица1 КАК ВременнаяТаблица1
|
|
|
7
bfss-732
09.10.23
✎
12:20
|
Вопрос закрыт
|
|
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший