К списку форумов К списку тем
Регистрация    Правила    Главная форума    Поиск   
Имя: Пароль:
Рекомендовать в новости

Запрос : Отобрать значения исключив выбранное множество

Гость
0 - 23.01.2014 - 11:14
Помогите туплю :
Нужно отобрать номенклатуры у которых установлен признак "ВестиУчетПоХарактеристикам" а самих характеристик нет.
Я как понимаю нужно отобрать характеристики в отдельной таблице
и затем взять номенклатуру за иключением владельцев данной таблицы типа того :

Запрос.Текст =
"ВЫБРАТЬ
| Номенклатура.Ссылка КАК Номенклатура,
| Характеристики.Количество КАК Количество
|ИЗ
| Справочник.Номенклатура КАК Номенклатура
| ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
| ХарактеристикиНоменклатуры.Владелец КАК Владелец,
| СУММА(1) КАК Количество
| ИЗ
| Справочник.ХарактеристикиНоменклатуры КАК ХарактеристикиНоменклатуры
|
| СГРУППИРОВАТЬ ПО
| ХарактеристикиНоменклатуры.Владелец) КАК Характеристики
| ПО Номенклатура.Ссылка <> Характеристики.Владелец
|ГДЕ
| Номенклатура.ВестиУчетПоХарактеристикам
|
|СГРУППИРОВАТЬ ПО
| Номенклатура.Ссылка,
| Характеристики.Количество";



1 - 23.01.2014 - 11:52
ВЫБРАТЬ
Подзапрос.Ссылка КАК Номенклатура
ИЗ (
ВЫБРАТЬ
СпрНоменклатура.Ссылка КАК Номенклатура,
Характеристики.Характеристика
ИЗ
Справочник.Номенклатура КАК СпрНоменклатура
ЛЕВОЕ СОЕДИНЕНИЕ
Справочник.ХарактеристикиНоменклатуры КАК Характеристики
ПО СпрНоменклатура.Ссылка = Характеристики.Владелец
ГДЕ
СпрНоменклатура.ВестиУчетПоХарактеристикам = ИСТИНА) КАК Подзапрос
ГДЕ Подзапрос.Характеристика ЕСТЬ NULL

Я бы делал так, или подзапрос вынес в первый запрос пакета.
2 - 23.01.2014 - 11:55
За такое "ПО Номенклатура.Ссылка <> Характеристики.Владелец"
стоило бы забивать желто-красными книжками. насмерть. В темном переулке. Это каких же размеров промежуточная таблица будет?
Uho
3 - 23.01.2014 - 11:57
справочник ХарактеристикиНоменкатуры подчинен Номенклатуре?

тогда так:

ВЫБРАТЬ
Номенклатура.Ссылка
ИЗ
Справочник.Номенклатура КАК Номенклатура
ГДЕ
Номенклатура.ВестиУчетПоХарактеристикам И
НЕ Номенклатура.Ссылка В
(ВЫБРАТЬ РАЗЛИЧНЫЕ
Справочник.ХарактеристикиНоменклатуры.Владелец
ИЗ
Справочник.ХарактеристикиНоменклатуры)
Гость
4 - 23.01.2014 - 12:01
(2) Я понимаю что это не верно. Выложил ТАКОЙ текст запроса просто чтобы яснее обозначить проболему
Гость
5 - 23.01.2014 - 12:09
(3) Спасибо . Красиво. Не знал что в условии можно проверить на вхождение в таблицу из подзапроса.

В мемориз.
6 - 23.01.2014 - 12:27
Цитата:
Сообщение от bvb Посмотреть сообщение
НЕ Номенклатура.Ссылка В
Я как-то опасаюсь использовать оператор вхождения на больших массивах данных. с этим оператором планы выполнения запросов иногда бывают совершенно непредсказуемые. меня пару раз в сильное изумление вгоняли.
Uho
7 - 23.01.2014 - 12:30
Цитата:
Сообщение от bma1 Посмотреть сообщение
Я как-то опасаюсь использовать оператор вхождения на больших массивах данных
это какой должен быть объем массива данных? Несколько миллилонов отработаются за секунду
8 - 23.01.2014 - 13:15
Цитата:
Сообщение от Uho Посмотреть сообщение
это какой должен быть объем массива данных? Несколько миллилонов отработаются за секунду
ага, когда план запросов начинает их в цикле гонять с проверкой... меня тоже удивило доневероятности.


К списку вопросов






Copyright ©, Все права защищены