0
Andry_Boris
02.02.12
✎
02:06
|
День добрый.
Есть запрос, его задачей является отбор документов за период с критерием отбора по дате, рассчитываемой как максимальная дата из
двух дат в документ.
&НачДата и &КонДата - Определяют период отбора
МАХ(Документ.Дата и Документ.НачалоДействия) - Критерий отбора
Максимум из двух дат должен оказаться в периоде отбора.
Вот собственно сам запрос...
ВЫБРАТЬ
Документ.Ссылка,
Документ.Платеж
ИЗ
Документ.Документ КАК Документ
ГДЕ
Документ.Организация = &Организация
И &НачДата <= ВЫБОР
КОГДА Документ.Дата > Документ.НачалоДействия
ТОГДА Документ.Дата
ИНАЧЕ Документ.НачалоДействия
КОНЕЦ
И ВЫБОР
КОГДА Документ.Дата > Документ.НачалоДействия
ТОГДА Документ.Дата
ИНАЧЕ Документ.НачалоДействия
КОНЕЦ <= &КонДата
Но что-то смущает, особенно фрагмент кода который повторяется дважды... Можно ли как-то оптимизировать этот запрос, чтобы и работал быстрее и читался красивее???...
С уважением, Andry
|
|
1
Andry_Boris
02.02.12
✎
02:21
|
Ага... есть вот такое решение...
ВЫБРАТЬ
Документ.Ссылка,
Документ.Платеж
ИЗ
Документ.Документ КАК Документ
ГДЕ
Документ.Организация = &Организация
И ВЫБОР
КОГДА Документ.Дата > Документ.НачалоДействия ТОГДА Документ.Дата
ИНАЧЕ Документ.НачалоДействия
КОНЕЦ МЕЖДУ &НачДата И &КонДата
Но может есть ещё варианты... кто знает...
|
|