|
Простенький запрос к ТЧ Реализации товаров и услуг |
☑ |
0
Sj
17.01.13
✎
00:18
|
Делаю запрос
ВЫБРАТЬ
Товары.Ссылка КАК Ссылка,
Товары.НомерСтроки КАК НомерСтроки,
Товары.Номенклатура КАК Номенклатура,
Товары.Номенклатура.Код КАК Код,
НоменклатураДополнительныеРеквизиты.Свойство
ИЗ
Документ.РеализацияТоваровУслуг.Товары КАК Товары
ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Номенклатура.ДополнительныеРеквизиты КАК НоменклатураДополнительныеРеквизиты
ПО Товары.Номенклатура = НоменклатураДополнительныеРеквизиты.Ссылка
ГДЕ
Товары.Ссылка В(&МассивОбъектов)
И ЕСТЬNULL(НоменклатураДополнительныеРеквизиты.Свойство, &Свойство) = &Свойство
УПОРЯДОЧИТЬ ПО
НомерСтроки
так как соединение левое, то ожидаю в результате увидеть номер строки 1, 2, 3, 4, 5, 6
но вижу: 2, 3, 4,5, 6
потому что у номенклатуры в первой строчке не заполнено свойство &Свойство.
Но ведь левое соединение предполагает, что Документ.РеализацияТоваровУслуг.Товары будет полностью проходить в результат.
Что не так в запросе?
|
|
1
mxs089
17.01.13
✎
00:23
|
условие накладывается на результат и поэтому "потому что у номенклатуры в первой строчке не заполнено свойство &Свойство"
|
|
2
shuhard
17.01.13
✎
00:24
|
(0)[Что не так в запросе?]
ГДЕ
Товары.Ссылка В(&МассивОбъектов)
И ЕСТЬNULL(НоменклатураДополнительныеРеквизиты.Свойство, &Свойство) = &Свойство
|
|
3
Sj
17.01.13
✎
00:29
|
Выполняю запрос
ВЫБРАТЬ
Товары.Ссылка КАК Ссылка,
Товары.НомерСтроки КАК НомерСтроки,
Товары.Номенклатура КАК Номенклатура,
Товары.Номенклатура.Код КАК Код,
НоменклатураДополнительныеРеквизиты.Свойство
ИЗ
Документ.РеализацияТоваровУслуг.Товары КАК Товары
ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Номенклатура.ДополнительныеРеквизиты КАК НоменклатураДополнительныеРеквизиты
ПО Товары.Номенклатура = НоменклатураДополнительныеРеквизиты.Ссылка
ГДЕ
Товары.Ссылка = (&МассивОбъектов)
УПОРЯДОЧИТЬ ПО
НомерСтроки
Вижу
1,1,1,1
2,2,2,2,2
3,3
4,4,4
5,5
6,6,6
|
|
4
mxs089
17.01.13
✎
00:30
|
а что ты хочешь увидеть?
|
|
5
mxs089
17.01.13
✎
00:31
|
ГДЕ
Товары.Ссылка = (&МассивОбъектов)
там вместо = В
|
|
6
Sj
17.01.13
✎
00:32
|
да. надо наверное сначала выбрать свойства, а потом только соединять. Левое соединение производится, но потом режется условием. Спасибо за подсказку, что-то не сообразил.
|
|
7
Sj
17.01.13
✎
00:34
|
(5) = да я это для примера, что точно одна накладная в запросе
|
|
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший