|
Отобрать номенклатуру (запрос) | ☑ | ||
|---|---|---|---|---|
|
0
1ctube
24.01.18
✎
16:19
|
Привет, нужно отобрать номенклатуру которой не было в документах "Пступление ТМЗ" за указанный период. Если пишу так(без периода) то работает как надо(выводит те номенклатуры которых нет в было в доках)
ВЫБРАТЬ Ном.Ссылка, ПоступлениеТоваровУслугТовары.Номенклатура ИЗ Справочник.Номенклатура КАК Ном ЛЕВОЕ СОЕДИНЕНИЕ Документ.ПоступлениеТоваровУслуг.Товары КАК ПоступлениеТоваровУслугТовары ПО (ПоступлениеТоваровУслугТовары.Номенклатура = Ном.Ссылка) ГДЕ Ном.ЭтоГруппа = &ЭтоГруппа И ПоступлениеТоваровУслугТовары.Номенклатура ЕСТЬ NULL Однако если добавляю так : И ПоступлениеТоваровУслугТовары.Ссылка.Дата МЕЖДУ &Дата И &ДатаКон То вообще ничего не выводит. Как исправить? |
|||
|
1
Timon1405
24.01.18
✎
16:24
|
в общих чертах
Выбрать Номенклатура.Ссылка из СпрНом... Где НЕ Номенклатура.ссылка В (Выбрать Нужное из ТЧ товаров за период) |
|||
|
2
vicof
24.01.18
✎
16:24
|
И ПоступлениеТоваровУслугТовары.Ссылка.Дата МЕЖДУ &Дата И &ДатаКон
надо добавлять не в ГДЕ, а в условие соединения |
|||
|
3
1ctube
24.01.18
✎
16:26
|
(1) (2) спс, помогло
|
|||
|
4
1ctube
24.01.18
✎
16:27
|
(2) а не работало из-за того, что у меня было левое соединение, а когда пишем "ГДЕ" то он сначала выбирает все данные и только потом "отсекает" по условию? Из-за этого не работало?
|
|||
|
5
vicof
24.01.18
✎
16:43
|
Условие в ГДЕ на правую таблицу превращает левое соединение во внутреннее
|
|||
|
6
Сти
24.01.18
✎
16:54
|
(4) Да, условие ГДЕ по дате отсекает записи, в которых получился Null, ведь Null не находится между Дата и ДатаКон, он вообще никогда ни с чем не сравнивается. И таким образом получается (5).
Впрочем, "ПоступлениеТоваровУслугТовары.Дата МЕЖДУ &Дата И &ДатаКон" можно превратить в "(ПоступлениеТоваровУслугТовары.Дата МЕЖДУ &Дата И &ДатаКон ИЛИ ПоступлениеТоваровУслугТовары.Ссылка ЕСТЬ Null)", но это и некрасиво, и неоптимально, поэтому лучше условие переносить в связь. Хотя в редких случаях такой вариант может пригодиться. |
|||
|
7
1ctube
24.01.18
✎
16:57
|
(6) (5) спасибо за разъяснение!
|
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |