При использовании подзапросов, довольно часто начинающие специалисты делают похожие ошибки. Возможно, и я в свое время их делал, но не могу припомнить наверняка. Я заметил, что если ученикам в ходе обучения рассказать про типичные ошибки при написании подзапросов, то внимательные ученики их после этого не делают! Чуть позже, мне в руки попал сборник вопросов на собеседованиях по SQL в США и в одном из вопросов был написан запрос с использованием подзапроса в котором специально была допущена одна из таких типичных ошибок...
Постановка задачи: Часто возникает ситуация, когда параметр запроса может быть как заполнен, так и пустым. При пустом значении параметра необходимо выбрать все данные, не применяя к ним фильтрацию. Решения: Существует несколько способов решить эту задачу: SQL ВЫБРАТЬ
*
ИЗ
Справочник.Номенклатура
ГДЕ
(&Параметр = Значение(Справочник.Номенклатура) ИЛИ &Параметр = Значение(ПустаяСсылка)) ВЫБРАТЬ
*
ИЗ
Справочник.Номенклатура
ГДЕ
(&Параметр = Значение(Справочник.Номенклатура) ИЛИ ЕСТЬNULL(&Параметр)) ВЫБРАТЬ
*
ИЗ
Справочник.Номенклатура
ГДЕ
ВЫБОР
КОГДА ЕСТЬNULL(&Параметр) ТОГДА ИСТИНА
ИНАЧЕ Номенклатура...