Показать сообщение отдельно
Старый 28.05.2007, 12:18   #1  
leshy is offline
leshy
Участник
 
118 / 11 (1) +
Регистрация: 23.02.2004
Адрес: Киев
Помогите с запросом
Подскажите, как решить следующую задачу:
Имеем две таблицы Таблица1 и Таблица2.
Таблица 1 содержит перечень товаров.
Таблица 2, содержит некий набор характеристик каждого товара: КодТовара, Характеристика. Связь 1:n.

Необходимо выбрать все товары, имеющих заданный набор признаков.
Попробовал решить задачу с помощью Exists Join.
Select Table1
Exists Join Table2 Where table2.itemId == table1.itemId && table2.feature == 1
Exists Join Table2 Where table2.itemId == table1.itemId && table2.feature == 2
Exists Join Table2 Where table2.itemId == table1.itemId && table2.feature == 3
И т д.
Это отлично работает пока количество условий меньше 26. Если же условий 26 и больше система сообщает об ошибке.
Если посмотреть в профайлер, то можно увидеть, что для каждой присоединенной таблицы, система присваивает имя a, b, c, d и т д. После символа «z» следующей переменной присваивается имя «[» на что SQL естественно ругается.

Можно ли как-нибудь обойти эту ситуацию? Можно ли по-другому сформулировать запрос, чтобы уменьшить количество объединений?

Axapta 3.0.SP3