Запрос : Отобрать значения исключив выбранное множество Помогите туплю : Нужно отобрать номенклатуры у которых установлен признак "ВестиУчетПоХарактеристикам" а самих характеристик нет. Я как понимаю нужно отобрать характеристики в отдельной таблице и затем взять номенклатуру за иключением владельцев данной таблицы типа того : Запрос.Текст = "ВЫБРАТЬ | Номенклатура.Ссылка КАК Номенклатура, | Характеристики.Количество КАК Количество |ИЗ | Справочник.Номенклатура КАК Номенклатура | ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ | ХарактеристикиНоменклатуры.Владелец КАК Владелец, | СУММА(1) КАК Количество | ИЗ | Справочник.ХарактеристикиНоменклатуры КАК ХарактеристикиНоменклатуры | | СГРУППИРОВАТЬ ПО | ХарактеристикиНоменклатуры.Владелец) КАК Характеристики | ПО Номенклатура.Ссылка <> Характеристики.Владелец |ГДЕ | Номенклатура.ВестиУчетПоХарактеристикам | |СГРУППИРОВАТЬ ПО | Номенклатура.Ссылка, | Характеристики.Количество"; |
ВЫБРАТЬ Подзапрос.Ссылка КАК Номенклатура ИЗ ( ВЫБРАТЬ СпрНоменклатура.Ссылка КАК Номенклатура, Характеристики.Характеристика ИЗ Справочник.Номенклатура КАК СпрНоменклатура ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ХарактеристикиНоменклатуры КАК Характеристики ПО СпрНоменклатура.Ссылка = Характеристики.Владелец ГДЕ СпрНоменклатура.ВестиУчетПоХарактеристикам = ИСТИНА) КАК Подзапрос ГДЕ Подзапрос.Характеристика ЕСТЬ NULL Я бы делал так, или подзапрос вынес в первый запрос пакета. |
За такое "ПО Номенклатура.Ссылка <> Характеристики.Владелец" стоило бы забивать желто-красными книжками. насмерть. В темном переулке. Это каких же размеров промежуточная таблица будет? |
справочник ХарактеристикиНоменкатуры подчинен Номенклатуре? тогда так: ВЫБРАТЬ Номенклатура.Ссылка ИЗ Справочник.Номенклатура КАК Номенклатура ГДЕ Номенклатура.ВестиУчетПоХарактеристикам И НЕ Номенклатура.Ссылка В (ВЫБРАТЬ РАЗЛИЧНЫЕ Справочник.ХарактеристикиНоменклатуры.Владелец ИЗ Справочник.ХарактеристикиНоменклатуры) |
(2) Я понимаю что это не верно. Выложил ТАКОЙ текст запроса просто чтобы яснее обозначить проболему |
(3) Спасибо . Красиво. Не знал что в условии можно проверить на вхождение в таблицу из подзапроса. В мемориз. |
[quote=bvb;33831154]НЕ Номенклатура.Ссылка В[/quote] Я как-то опасаюсь использовать оператор вхождения на больших массивах данных. с этим оператором планы выполнения запросов иногда бывают совершенно непредсказуемые. меня пару раз в сильное изумление вгоняли. |
[quote=bma1;33831677]Я как-то опасаюсь использовать оператор вхождения на больших массивах данных[/quote] это какой должен быть объем массива данных? Несколько миллилонов отработаются за секунду |
[quote=Uho;33831747]это какой должен быть объем массива данных? Несколько миллилонов отработаются за секунду [/quote] ага, когда план запросов начинает их в цикле гонять с проверкой... меня тоже удивило доневероятности. |
Текущее время: 17:52. Часовой пояс GMT +3. |