|
ЛЕВОЕ СОЕДИНЕНИЕ с условием
| ☑ |
0
grasshoper
09.03.21
✎
15:59
|
День добрый. Столкнулся недавно с непонятным поведением запроса (может что-то упускаю). При соединении с таблицей в конструкции ВЫБОР КОГДА ТОГДА КОНЕЦ второе условие (ИЛИ СпецификацииНоменклатуры.ВидСпецификации = ЗНАЧЕНИЕ(Перечисление.ВидыСпецификаций.Сырье)) не отрабатывает. Если оставляю один какой-то из операндов условия, то оно срабатывает как нужно, но при добавлении ИЛИ отрабатывает только первая его часть. Может у кого есть идеи?
ЛЕВОЕ СОЕДИНЕНИЕ СпецификацииНоменклатуры КАК СпецификацииНоменклатуры
ПО ЗаказыНаПроизводство.Номенклатура = СпецификацииНоменклатуры.Номенклатура
И (ВЫБОР
КОГДА ЗаказыНаПроизводство.Оформление <> &Строк
ТОГДА СпецификацииНоменклатуры.Оформление = ЗаказыНаПроизводство.Оформление
ИЛИ СпецификацииНоменклатуры.ВидСпецификации = ЗНАЧЕНИЕ(Перечисление.ВидыСпецификаций.Сырье)
ИНАЧЕ СпецификацииНоменклатуры.ВидСпецификации = ЗНАЧЕНИЕ(Перечисление.ВидыСпецификаций.Сборочная)
КОНЕЦ)
|
|
1
ДенисЧ
09.03.21
✎
16:00
|
Если первое срабатывает в ложь, то второе уже не вычисляется.
|
|
2
mikecool
09.03.21
✎
16:01
|
(1) + "о сколько нам открытий чудных..."
|
|
3
grasshoper
09.03.21
✎
16:01
|
(1) Почему? ИЛИ строгое?
|
|
4
ДенисЧ
09.03.21
✎
16:02
|
(1) я имел в виду наоборот )))
Если первое истина, тогда...
Спутал...
|
|
5
grasshoper
09.03.21
✎
16:04
|
(4) Всё, понял, вычисляется как выражение) Всем спасибо)
|
|
6
grasshoper
10.03.21
✎
10:45
|
(4) В результате если первое ложь, то второе не вычисляется, потому что есть записи соответствующие обеим частям условиям, а выводятся только соответствующие первой его части.
|
|