| 
			
			 | 
		#1 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
			
			
			Помогите с запросом
			 
			
			Подскажите, как решить следующую задачу: 
		
		
		
		
		
		
		
	Имеем две таблицы Таблица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  | 
| 
	
 | 
| 
			
			 | 
		#2 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			почему бы не использовать 1 exists join? и все условия описать в where
		 
		
		
		
		
		
		
		
	 | 
| 
	
 | 
| 
			
			 | 
		#3 | 
| 
			
			 Программатор 
		
			
	 | 
	
	
	
		
		
		
		 
			
			О Боже... 
		
		
		
		
		
		
		
	  X++: While select table1 where table1.itemid == table2.itemid && (table2.feature == tmp1 || table2.feature == tmp2 ...)  | 
| 
	
 | 
| 
			
			 | 
		#4 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 Цитата: 
	
Потому что нужно выбрать записи, которые содержат все критерии, а не хотя бы один. Вот если бы в вашем примере вместо ИЛИ можно было использовать И, тогда это было бы похоже на то что нужно.  | 
| 
	
 | 
| 
			
			 | 
		#5 | 
| 
			
			 Участник 
		
			
	 | 
	
	|
| 
	
 | 
| 
			
			 | 
		#6 | 
| 
			
			 Участник 
		
			
	 | 
	
	|
| 
	
 | 
| 
			
			 | 
		#7 | 
| 
			
			 Участник 
		
			
	 | 
	
	|
| 
	
 | 
| 
			
			 | 
		#8 | 
| 
			
			 Участник 
		
			
	 | 
	
	|
| 
	
 | 
| 
			
			 | 
		#9 | 
| 
			
			 Участник 
		
			
	 | 
	
	|
| 
	
 | 
| 
			
			 | 
		#10 | 
| 
			
			 Программатор 
		
			
	 | 
	
	
	
		
		
		
		 X++: While select table1 where table1.itemid == table2.itemid && table2.feature == A && table2.feature == B && table2.feature == C { }  | 
| 
	
 | 
| 
			
			 | 
		#11 | 
| 
			
			 Участник 
		
			
	 | 
	
	|
| 
	
 | 
| 
			
			 | 
		#12 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 Цитата: 
	
{ select table2 where table2.itemid == table1.itemid && table2.feature == A && table2.feature ==B && table2.feature ==C if (table2) в контйнер или куда нибудь }  | 
| 
	
 | 
| 
			
			 | 
		#13 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			А у вас в Таблице 2 пары ItemId, Feature уникальны?
		 
		
		
		
		
		
		
			
				__________________ 
		
		
		
		
	Axapta v.3.0 sp5 kr2  | 
| 
	
 | 
| 
			
			 | 
		#14 | 
| 
			
			 Axapta 
		
			
	 | 
	
	|
| 
	
 | 
| 
			
			 | 
		#15 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 Цитата: 
	
group by ItemId join TableId from table2 where (table2.ItemId == table1.ItemId) && ((table2.Feature == "A") || (table2.Feature == "B"))  | 
| 
	
 | 
| 
			
			 | 
		#16 | 
| 
			
			 Участник 
		
			
	 | 
	
	|
| 
	
 | 
| 
			
			 | 
		#17 | 
| 
			
			 Программатор 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Я join забыл  
		
		
		
		
		
		
		
	 
		 | 
| 
	
 | 
| 
			
			 | 
		#18 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 Цитата: 
	
select ItemId from table1 group by ItemId join count(TableId) from table2 where (table2.ItemId == table1.ItemId) && ((table2.Feature == "A") || (table2.Feature == "B") || (table2.Feature == "C")) && count(tableId) =3 3 - количество условий Последний раз редактировалось leshy; 29.05.2007 в 12:14.  | 
| 
	
 | 
| 
			
			 | 
		#19 | 
| 
			
			 Программатор 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Это чо папало...Так низя...
		 
		
		
		
		
		
		
		
	 | 
| 
	
 | 
| 
			
			 | 
		#20 | 
| 
			
			 Участник 
		
			
	 | 
	
	|
| 
	
 | 
| Теги | 
| ax3.0 | 
| 
	
	 | 
	
		
			 
			Похожие темы
		 | 
	||||
| Тема | Ответов | |||
| Помогите с запросом | 8 | |||
| Помогите с запросом | 4 | |||
| помогите с запросом | 4 | |||
| Помогите с запросом.. | 2 | |||
| Помогите с SQL запросом | 8 | |||
		
  |