|
Соединение берет не все строки | ☑ | ||
|---|---|---|---|---|
|
0
itbchern
04.08.16
✎
06:48
|
Здравствуйте
Использую УТ 11.2 с сериями, как следствие- регистры СвободныеОстатки и ТоварыНаСкладах дают разные остатки Чтобы узнать, какой из регистраторов добавил движение в СвободныеОстатки, но не добавился в ТоварыНаСкладах хотел написать запрос Запрос пишу для конкретной позиции номенклатуры и конкретного склада Но столкнулся с проблемой: ВЫБРАТЬ Регистратор, ВНаличии ИЗ РегистрНакопления.СвободныеОстатки ГДЕ Номенклатура = &Ном И Склад = &Склад Возвращает 18 строк ВЫБРАТЬ Регистратор, ВНаличии ИЗ РегистрНакопления.ТоварыНаСкладах ГДЕ Номенклатура = &Ном И Склад = &Склад Возвращает 17 строк Логично соединить их и посмотреть, какой регистратор пропал ВЫБРАТЬ Ост.Регистратор, Ост.ВНаличии, Тнс.ВНаличии, Тнс.Регистратор ИЗ РегистрНакопления.СвободныеОстатки КАК Ост ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах КАК Тнс ПО Ост.Регистратор = Тнс.Регистратор ГДЕ Ост.Номенклатура = &Ном И Тнс.Номенклатура = &Ном И Ост.Склад = &Склад И Тнс.Склад = &Склад Но этот запрос возвращает почему-то тоже 17 строк |
|||
|
1
Горогуля
04.08.16
✎
06:50
|
ну смени на полное
|
|||
|
2
catena
04.08.16
✎
06:50
|
Нельзя писать "ГДЕ" на левую таблицу и надеяться увидеть NULLевые записи.
|
|||
|
3
itbchern
04.08.16
✎
06:51
|
(1) Ничего не меняется- те же 17 записей
(2) Можно как-нибудь по-другому отобрать тогда? |
|||
|
4
catena
04.08.16
✎
06:52
|
Можно, например, так:
ВЫБРАТЬ Ост.Регистратор, Ост.ВНаличии, Тнс.ВНаличии, Тнс.Регистратор ИЗ РегистрНакопления.СвободныеОстатки КАК Ост ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах КАК Тнс ПО Ост.Регистратор = Тнс.Регистратор и Ост.Номенклатура = Тнс.Номенклатура и Ост.Склад = Тнс.Склад ГДЕ Ост.Номенклатура = &Ном И Ост.Склад = &Склад |
|||
|
5
Горогуля
04.08.16
✎
06:53
|
(3) тебе ГДЕ срезает нулловые записи
|
|||
|
6
itbchern
04.08.16
✎
06:53
|
(4) Спасибо большое :) Заработало :)
|
| Форум | Правила | Описание | Секции | Поиск |