![]() |
![]() |
![]() |
|
Параметр в запросе: или NULL или же какое-то значение | ☑ | ||
---|---|---|---|---|
0
bogdan51
20.03.08
✎
08:55
|
Всем Доброго дня!
В запрос передается параметр ,например: список должностей сотрудников Где РаботникиОрганизацийСрезПоследних.Должность В(&Должность) Пытаюсь сделать 2 варианта ввода параметра &должность - конкретный список. В этом случае ни каких проблем. - пустое значение, как сигнал к выбору всех должностей но можно ли это обыграть как то в одной конструкции ГДЕ? Пока не знаю,как это сделать. В СУБД ORACLE это реализовывается просто: nvl(&dolgn,dolgnost)=dolgnost где &dolgn - параметр,а dolgnost - столбец таблицы Буду благодарен за помощь. Спасибо |
|||
1
selenat
20.03.08
✎
09:02
|
(0) используй построитель отчета..
|
|||
2
Валерыч
20.03.08
✎
09:02
|
попробуй добавить
ИЛИ РаботникиОрганизацийСрезПоследних.Должность = НЕОПРЕДЕЛЕНО и передавать либо список, либо НЕОПРЕДЕЛЕНО |
|||
3
RomaH
naïve
20.03.08
✎
09:03
|
Где РаботникиОрганизацийСрезПоследних.Должность В(&Должность)
ИЛИ &Должность = &ПустаяСсылка |
|||
4
Валерыч
20.03.08
✎
09:04
|
сорри, наоборот надо
ГДЕ ВЫБОР КОДГА &Долность = НЕОПРЕДЕЛЕНО ТОГДА ИСТИНА ИНАЧЕ РаботникиОрганизацийСрезПоследних.Должность В(&Должность) КОНЕЦ |
|||
5
selenat
20.03.08
✎
09:14
|
(0) псмотри статью в книге знаний использование необязательных условий в запросах
|
|||
6
Wladimir_spb
20.03.08
✎
09:15
|
Условие в запросе? ТелепатБот, ответь
|
|||
7
Wladimir_spb
20.03.08
✎
09:16
|
||||
8
Регистратор
20.03.08
✎
09:19
|
А чо религия не позволяет собирать текст запроса программно т.е. есть ограничение списком тогда добавляем мнструкцию в ГДЕ ..., нет ограничений не добавляем. Вобщемто куда проще.
|
|||
9
selenat
20.03.08
✎
09:20
|
(8) некошерно...
|
|||
10
уродина
20.03.08
✎
09:21
|
(8) не скажи.... мне приятнее в запросе все сделать чем собирать его по кусочкам... тем более если используются виртуальные таблицы
|
|||
11
Регистратор
20.03.08
✎
09:28
|
тут палка о двух концах,
напрмер 1.поставим в параметр &Условие и туда добавим Истина или какоето ограничение тогда мы не увидим результирующий запрос в режиме отладки т.е. что вставлено в запрос там не подставится 2.используем построитель запроса но он не дружит с СКД |
|||
12
Регистратор
20.03.08
✎
09:44
|
кстати на счет виртуальных таблиц - для запроса собранного вручную условия на виртуальную таблицу ставятся явно. НО я пытался выяснить в СКД когда добавляются условия (отбор) они ставятся в виртуальную таблицу или как? А если там несколько регистров и на один нужно в виртуальные таблицы а на другие нет? точного ответа получить не удалось максимум сказали что предположительно да.
|
|||
13
bogdan51
20.03.08
✎
11:00
|
Попробовал так:
| И ВЫБОР КОГДА &Должность=неопределено Тогда Истина Иначе РаботникиОрганизацийСрезПоследних.Должность В (&Должность) КОНЕЦ И получаю аварийное сообщение: Неверные параметры в операции сравнения.Нельзя сравнивать поля неограниченной длины и поля несовместимых параметров. Параметр &должность в форме: Данные - Должность Тип значение - Список значений Тип значения списка -СправочникСсылка.ДолжностиОрганизаций То же сообщение,если в запросе вместо неопределено ставлю """". Если же Выбор Когда &должность есть NULL Тогда Истина Иначе РаботникиОрганизацийСрезПоследних.Должность В (&Должность) КОНЕЦ, то при не пустом параметре выборка происходит,а при пустом ничего не выбирает. |
|||
14
selenat
20.03.08
✎
11:02
|
(13) зачем ты задаешь вопрос, если не слушаешь что тебе говорят? Чиста пообчаться?
|
|||
15
Apost
20.03.08
✎
11:26
|
(0) Может это?
ЕСТЬNULL(&dolgn,dolgnost)=dolgnost |
|||
16
bogdan51
20.03.08
✎
13:32
|
Если кому интересно,то получилось вот как:
- доп.параметр запроса КолВо = Должность.Количество(); - в запросе ГДЕ ВЫБОР КОГДА КолВо=0 Тогда Истина Иначе РаботникиОрганизацийСрезПоследних.Должность В(&Должность) Конец Таким образом,сразу в запросе генерируется выборка или по списку или же все |
|||
17
bogdan51
20.03.08
✎
13:35
|
Извиняюсь ,конечно же, Когда &КолВо=0 Тогда Истина
|
|||
18
неа123
20.03.08
✎
13:41
|
(16) +
обычно пишу так: НеНадоПроверятьВхождения = Колво = 0; в запросе: ГДЕ &НеНадоПроверятьВхождения ИЛИ РаботникиОрганизацийСрезПоследних.Должность В(&Должность) хотя через ВЫБОР, оптимальнее, скорее всего. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |