Вход | Регистрация


СКД, проблема отбора в запросе

СКД, проблема отбора в запросе
Я
   bolobol
 
10.04.18 - 09:37
Доброго дня!

Запрос в СКД, типа:
ВЫБРАТЬ
    5 КАК Оценка,
    ИСТИНА КАК Хорошая
ПОМЕСТИТЬ ХорошиеОценки
;
ВЫБРАТЬ
 Оценки.Оценка,
 ЕСТЬNULL(ХорошиеОценки, ложь) КАК Хорошая
ИЗ
 Оценки ЛЕВОЕ ХорошиеОценки ПО Оценка = Оценка

Ставлю отбор в пользовательском режиме Хорошие = Истина - отличный выбор! Ставлю Хорошие = ложь - результат: любые оценки, а не только не хорошие.

Как поправить, чтоб работало и почему не работает, как задумано?

Спасибо!
 
 
   Rovan
 
1 - 10.04.18 - 09:43
Чем заполнена "Оценки" ?
   Rovan
 
2 - 10.04.18 - 09:45
Чтобы не было даже намека на возможные разночтения я пишу с КАК и с именами таблиц:

Оценки КАК Оценки 
ЛЕВОЕ СОЕДИНЕНИЕ ХорошиеОценки КАК ХорошиеОценки 
ПО Оценки.Оценка = ХорошиеОценки.Оценка
   bolobol
 
3 - 10.04.18 - 09:46
ВЫБРАТЬ
  5 КАК Оценка
ПОМЕСТИТЬ Оценки
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
  4
;
ВЫБРАТЬ
    5 КАК Оценка,
    ИСТИНА КАК Хорошая
ПОМЕСТИТЬ ХорошиеОценки
;
ВЫБРАТЬ
 Оценки.Оценка,
 ЕСТЬNULL(ХорошиеОценки.Хорошая, ложь) КАК Хорошая
ИЗ
 Оценки ЛЕВОЕ СОЕДИНЕНИЕ ХорошиеОценки ПО Оценки.Оценка = ХорошиеОценки.Оценка
   Адинэснег
 
4 - 10.04.18 - 09:53
садись, два :-D
   Малыш Джон
 
5 - 10.04.18 - 09:54
(3) потому что ты параметр вводишь:

ВЫБРАТЬ
    5 КАК Оценка
ПОМЕСТИТЬ Оценки

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
    4
;


ВЫБРАТЬ
    5 КАК Оценка,
    ИСТИНА КАК Хорошая
ПОМЕСТИТЬ ХорошиеОценки
ГДЕ
    ИСТИНА = &П
;


ВЫБРАТЬ
    Оценки.Оценка КАК Оценка,
    ЕСТЬNULL(ХорошиеОценки.Хорошая, ЛОЖЬ) КАК Хорошая
ИЗ
    Оценки КАК Оценки
        ЛЕВОЕ СОЕДИНЕНИЕ ХорошиеОценки КАК ХорошиеОценки
        ПО Оценки.Оценка = ХорошиеОценки.Оценка
ГДЕ
    ЕСТЬNULL(ХорошиеОценки.Хорошая, ЛОЖЬ) = &П
   unregistered
 
6 - 10.04.18 - 09:55
Поле "Хорошая" есть и во временной таблице ХорошиеОценки и в во втором запросе пакета.
Переименуй. Или в настройках компановки определи на какие поля можно накладывать условия.
ИМХО, твое условие Хорошие = ложь ложиться на первый запрос пакета. В результате имеем пустую временную таблицу ХорошиеОценки, а это в свою очередь приводит к тому, что в результате второго запроса всегда Хорошая - ложь (так как соединяться не с чем и всегда выполняется условие ЕСТЬNULL.
   unregistered
 
7 - 10.04.18 - 09:58
+ к (6): Вообще убери поле Хорошая из первого запроса. Оно там не нужно. Например так.

 ВЫБРАТЬ
   5 КАК Оценка
 ПОМЕСТИТЬ ХорошиеОценки
 ;
 ВЫБРАТЬ
   Оценки.Оценка,
   НЕ ХорошиеОценки ЕСТЬ NULL КАК Хорошая
 ИЗ
   Оценки ЛЕВОЕ ХорошиеОценки ПО Оценка = Оценка
   unregistered
 
8 - 10.04.18 - 09:59
уточнение к (7)

 ВЫБРАТЬ
   5 КАК Оценка
 ПОМЕСТИТЬ ХорошиеОценки
 ;
 ВЫБРАТЬ
   Оценки.Оценка,
   НЕ ХорошиеОценки.Оценка ЕСТЬ NULL КАК Хорошая
 ИЗ
   Оценки ЛЕВОЕ ХорошиеОценки ПО Оценка = Оценка
   mehfk
 
9 - 10.04.18 - 09:59
(0) А ты сними галочку "Автозаполнение" и расставь скд-конструкции в нужных местах сам.
   bolobol
 
10 - 10.04.18 - 10:10
Спасибо!

Действительно, отбор накладывается на всё одноимённое, а не только на конечный выбор.

Второй вариант - тоже работает!

Спасибо!
 
 Рекламное место пустует
   bolobol
 
11 - 10.04.18 - 10:13
(9) С Автозаполнением не стал разбираться, это ещё нужно погружаться, чем без него полезнее станет СКД. Слава багам, пока не пригождалось)

Спасибо!
   mehfk
 
12 - 10.04.18 - 10:27
(11) Так и будешь всю жизнь на форумах спрашивать.
   bolobol
 
13 - 10.04.18 - 11:32
Ясен пень!

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует