Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
27 ноя 2024, 05:35

Левое соединение глючит

Автор agusikdeon, 09 дек 2013, 11:57

0 Пользователей и 1 гость просматривают эту тему.

agusikdeon


ВртЗ- это временная таблица.


ВЫБРАТЬ
   ВрТЗ.Номенклатура,
   СУММА(ВрТЗ.Состояние) КАК Состояние,
   СУММА(ЕСТЬNULL(ЦеныСрезПоследних.Цена, 0)) КАК РознЦена,
   Сумма(ВрТЗ.количество) Как Количество
ПОМЕСТИТЬ абв1
ИЗ
   ВрТЗ КАК ВрТЗ
      ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.Цены.СрезПоследних(&Период, ) КАК ЦеныСрезПоследних
      ПО ВрТЗ.Номенклатура = ЦеныСрезПоследних.Номенклатура
ГДЕ
   ЦеныСрезПоследних.ТипЦен = &ТипЦен1


СГРУППИРОВАТЬ ПО
   ВрТЗ.Номенклатура


;


например у меня во временной таблице есть номенклатура Цикорий. а в регистре "Цены" нет цены(&ТипЦен1) на данную номенклатуру.
по идее левое соединение должно возвращать мне строку типа


Номенклатура      Цена
Цикорий                NULL


или



Номенклатура      Цена
Цикорий               0


раз уж в запросе используется естьNULL().


а она не возвращает ничего. пусто в запросе. Почему?

mixqn

включи логику!
если на результат
Цитата: agusikdeon от 09 дек 2013, 11:57Номенклатура      Цена
Цикорий                NULL
наложить условие
Цитата: agusikdeon от 09 дек 2013, 11:57ГДЕ
   ЦеныСрезПоследних.ТипЦен = &ТипЦен1
то что получится???

правильно, ничего!

убери условие по типу цен из-под ГДЕ, перенеси его в условия соединения.
то есть будет так:
....
      ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.Цены.СрезПоследних(&Период, ) КАК ЦеныСрезПоследних
      ПО ВрТЗ.Номенклатура = ЦеныСрезПоследних.Номенклатура
         И ЦеныСрезПоследних.ТипЦен = &ТипЦен1

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск