|
Соединение берет не все строки
| ☑ |
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) Спасибо большое :) Заработало :)
|
|