|
СКД. Связи наборов данных. ЕСТЬ NULL
| ☑ |
0
Zixxx
14.01.18
✎
12:44
|
Какое условие нужно задать полю, если при связи наборов данных его значение что-то типа null
Как вариант можно задать вид сравнения Заполнено, тогда такие поля не попадают в результат
Если задать вид сравнения НеЗаполнено, то такие поля все равно не попадают в результат
В вычисляемых полях такие поля определяются как NULL
Если программно устанавливать отбор на ВидСравнения.Равно NULL, то не попадает в результат
Как правильно задать отбор чтобы получить пустые поля из связей наборов данных?
|
|
1
vicof
14.01.18
✎
14:56
|
естьnull()
|
|
2
milan
14.01.18
✎
15:24
|
Никак, при использовании отбора, левое соединение наборов данных заменяется на внутреннее, зачем, непонятно.
|
|
3
Лефмихалыч
14.01.18
✎
15:29
|
(0) добавить вычисляемое поле, в котором будет
ВЫБОР КОГДА ЕСТЬ NULL тогда истина иначе ложь
и отбирать по нему
(2) это не зачем. Это запрос так работает. На любой СУБД.
|
|
4
Zixxx
14.01.18
✎
16:02
|
(3) Нет так номер не пройдет, если есть связи наборов, то вычисляемое поле будет как представление, либо содержать значение какой-то неопределенности и в случае наложения отбора именно эта неопределенность и будет на первом месте.
Причем даже типовая расшифровка предложит такой быстрый отбор но ничего не покажет.
А вот если вычисляемое поле идет без связей наборо тогда будет работать
|
|
5
Лефмихалыч
14.01.18
✎
16:19
|
(4) ну, да. Можно добавить в первый набор необязательное соединение именно для вычисления этого ВЫБОР КОГДА ТОГДА. Будет работать быстрее, чем все ухищрения с вычисляемыми полями, но может сбивать с толку тех, кто будет читать этот запрос через пару месяцев
|
|
6
milan
14.01.18
✎
17:25
|
(3) что за запрос, и почему он работал по другому в ранних версиях платформы? Кажется такая же фигня в динамических списках, но могу ошибаться.
|
|
7
Лефмихалыч
14.01.18
✎
17:32
|
(6) сравнение нула с чем угодно возвращает ложь в запросе во всех СУБД, поддерживающих join'ы.
|
|
8
milan
14.01.18
✎
17:42
|
(6) нет, не ошибаюсь, в типовых не получится отобрать документы без присоединенных файлов, ибо джоин превращается во внутренний
|
|
9
milan
14.01.18
✎
17:43
|
(7) в нашем примере условие проверяет нулл
|
|
10
Franchiser
гуру
14.01.18
✎
22:25
|
Такое условие можно задать только на уровни нижележащих группировок (и детальных записей), учли использовать условие на уровне все отчета СКД применит внутренне соединение. Другой вариант - использовать вычисляемое поле и по нему потом делать фильтр
|
|
Кaк может человек ожидaть, что его мольбaм о снисхождении ответит тот, кто превыше, когдa сaм он откaзывaет в милосердии тем, кто ниже его? Петр Трубецкой