Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
InNesKA Участник со стажем
Вступление в Клуб: 05.06.2008
|
Вт Июл 08, 2008 04:29  Отбор нужного в представление. |
|
Полезность: Нет оценки
|
Задача такая: необходимо создать представление по документам банк-фактуры (настроено в операции фильтр), где показываются документы за период (операция фильтр).
Подскажите как сделать так, чтобы:
Если за данный период по счету несколько документов, то показывать только первый, но если были по счету документы раньше даты начала периода, то ничего не показывать.
P.S. Заранее спасибо.  |
|
 |
dnk_dz Эксперт
Вступление в Клуб: 19.09.2007
|
Вт Июл 08, 2008 05:35   |
|
Полезность: 1
|
На вскидку примерно так:
1. Выбрать минимальный ID документа по счету за период. С группировкой по счету.
2. Выбрать все документы, получившиеся в п.1
типа:
Код: | select a(
a.[DOCUMENT_NUM],
...
)
in ::[MAIN_DOCUM] where a in
(
select b
(min(b%id))
in ::[MAIN_DOCUM] where b.[DATE_PROV] >= date1 and
b.[DATE_PROV] <= date2
group by b.[ACC_DT]
) |
|
|
 |
InNesKA Участник со стажем
Вступление в Клуб: 05.06.2008
|
Вт Июл 08, 2008 06:07   |
|
Полезность: Нет оценки
|
dnk_dz пишет: | На вскидку примерно так:
1. Выбрать минимальный ID документа по счету за период. С группировкой по счету.
2. Выбрать все документы, получившиеся в п.1
типа:
Код: | select a(
a.[DOCUMENT_NUM],
...
)
in ::[MAIN_DOCUM] where a in
(
select b
(min(b%id))
in ::[MAIN_DOCUM] where b.[DATE_PROV] >= date1 and
b.[DATE_PROV] <= date2
group by b.[ACC_DT]
) |
|
Как это вставить в простое представление для просмотра с фильтром?  |
|
 |
dnk_dz Эксперт
Вступление в Клуб: 19.09.2007
|
Вт Июл 08, 2008 06:10   |
|
Полезность: Нет оценки
|
InNesKA пишет: |
Как это вставить в простое представление для просмотра с фильтром?  |
Никак. Только сделать PL+ представление. |
|
 |
r00st Эксперт
Вступление в Клуб: 14.09.2007
|
Вт Июл 08, 2008 06:31   |
|
Полезность: Нет оценки
|
Этот вариант годится, если нужен любой из имеющихся документов в заданном периоде.
Если же обязателен первый (по дате проводки или дате документа), то не учитывается возможность вставки прошлой датой. |
|
 |
InNesKA Участник со стажем
Вступление в Клуб: 05.06.2008
|
Вт Июл 08, 2008 08:06   |
|
Полезность: Нет оценки
|
dnk_dz пишет: | InNesKA пишет: |
Как это вставить в простое представление для просмотра с фильтром?  |
Никак. Только сделать PL+ представление. |
Я выборку написала...просто думала может можно это в простом представление использовать. |
|
 |
Alex2019 Профи
Вступление в Клуб: 02.07.2007
|
Вт Июл 08, 2008 18:29   |
|
Полезность: Нет оценки
|
InNesKA пишет: | dnk_dz пишет: | InNesKA пишет: |
Как это вставить в простое представление для просмотра с фильтром?  |
Никак. Только сделать PL+ представление. |
Я выборку написала...просто думала может можно это в простом представление использовать. |
Можно попробовать в простом представлении в условии написать что-то вроде
Код: | A1_1.ID in (select B.ID from Z#MAIN_DOCUM B where B.C_DATE_DOC... | , а селект предварительно написать в теле фильтра, откомпилить и полученный в теле пакета результат вставить в условие
Вот только с датами придется помудрить, возможно через SYS_CONTEXT, по принципу того, как это сделано в "Документы опердня". Впрочем, если есть фильтр, и даты задаются в нем. то задача упрощается |
|
 |
|