|  29.09.2003, 14:42 | #1 | 
| Участник | UNION 
			
			В Оракле был (нехорошо как-то в прошедшем времени, он вроде не умер ещё) такой оператор - UNION. Хотелось бы узнать есть ли в Аксапте какие-нибудь аналоги ему. Может можно два(или больше) набора данных затащить в один query? Как быть если понадобится два набора данных (с одинаковым набором полей конечно) отобразить в одном лукапе?
		 
				__________________ Дмитрий | 
|  | 
|  29.09.2003, 15:32 | #2 | 
| Участник | 
			
			join См. документацию по этому ключевому слову. А также форму tutorial_Form_Join | 
|  | 
|  29.09.2003, 15:45 | #3 | 
| Administrator | 
			
			По-моему, это все-таки вопрос про Map.    Если я прав, то читайте дальше. Есть в Аксапте такой объект - Map. Живут они в Data Dictionary. С помощью Map'ов можно сделать так, что данные из нескольких таблиц, будут представлены в одной (вернее выглядеть это будет так). Для всех остальных объектов Axapta Map'ы выглядят, как обычные таблицы. Резюме. Все зависит от того, как вы хотите объединить свои данные. Если хотите две таблицы рядом (одна слева, другая справа), тогда вам Join нужен. Если друг за другом (одна сначала, другая в конце), тогда Map. 
				__________________ Not registered yet? Register here! Have comments, questions, suggestions or anything else regarding our web site? Don't hesitate, send them to me | 
|  | 
|  29.09.2003, 15:49 | #4 | 
| Участник | Цитата: 
		
			А также форму tutorial_Form_Join
		
	 
				__________________ Дмитрий | 
|  | 
|  29.09.2003, 16:05 | #5 | 
| Administrator | Цитата: 
		
			Изначально опубликовано Damn  Просто записи, возвращаемые одним, добавляются к записям второго. Единственное требование - одинаковое кол-во столбцов и одинаковые типы этих столбцов.   
				__________________ Not registered yet? Register here! Have comments, questions, suggestions or anything else regarding our web site? Don't hesitate, send them to me | 
|  | 
|  29.09.2003, 16:13 | #6 | 
| Участник | 
			
			Поглядел я Map'ы. Интересные создания   . Таблицы они соединяют. А запросы? Query то есть. И ведь эти запросы мне нужно соединить в лукапе. Программно. Да там ещё параметры будут. 
				__________________ Дмитрий | 
|  | 
|  29.09.2003, 16:27 | #7 | 
| Administrator | 
			
			Будем мыслить логически. 1. Map объединит только Table'ы. 2. Query в результате дает DataSource в результате. 3. Из 1 и 2 следует, что Query Map'ом мы не получим.   А если пойти наоборот? Какая задача, если не секрет? И, кстати, версия Axapta (в третьей еще, кажется, кое-какие пряники есть). 
				__________________ Not registered yet? Register here! Have comments, questions, suggestions or anything else regarding our web site? Don't hesitate, send them to me | 
|  | 
|  29.09.2003, 16:28 | #8 | 
| Участник | Цитата: 
		
			Изначально опубликовано Damn  Возможно ты не работал с Ораклом .. или я неправильно сформулировал вопрос. Но UNION служит для соединения набора записей, возвращаемых двумя SQL-запросами. Также применяются UNION ALL, MINUS, INTERSECT (извиняюсь за случайное рекламирование неаксаптовских операторов). Соединяемые запросы никаким образом не связываются друг с другом. Просто записи, возвращаемые одним, добавляются к записям второго. Единственное требование - одинаковое кол-во столбцов и одинаковые типы этих столбцов. Это оно? Или я не так понял? С Ораклом я действительно плотно не работал. Про МАПы. МАП лучше всего воспринимать как interface для классов. В отличие от interface МАП умеет работать с переименованными полями, переменными. А в остальном - типичный интерфейс. МАП ни в коем случае не является запросом и не имеет физической реализации. | 
|  | 
|  29.09.2003, 16:51 | #9 | 
| Administrator | Цитата: 
		
			Изначально опубликовано mazzy  См. руководство разработчика. ключевая фраза "Sequencing of retrieved records" 
				__________________ Not registered yet? Register here! Have comments, questions, suggestions or anything else regarding our web site? Don't hesitate, send them to me | 
|  | 
|  29.09.2003, 17:18 | #10 | 
| Участник | 
			
			Ладно , закидали вы меня ответами    "Упорядочивание возвращаемых записей" я поглядел. На "Multiple embedded data sources" внимание обратил. Привожу иллюстрацию: [IMG] не отображал никогда иллюстрации, может она и не отобразится сейчас. Дочерние датасоурсы привязаны к главному DataSource A посредством ExistJoin. Так вот мне надо чтобы между DataSource B и DataSource C было логическое ИЛИ .. то есть либо та либо другая связь должна присутствовать (хотя бы одна). Как между Link'ами делать ИЛИ я не знаю, поэтому и подумал насчёт UNION. Хотя это оказалось ещё сложнее. 
				__________________ Дмитрий | 
|  | 
|  29.09.2003, 17:56 | #11 | 
| Участник | 
			
			Возможно я сильно туплю... Но не понимаю в чем проблема. Сделайте запрос по: LedgerJournalTrans - LedgerTable - CustTable - VendTable введите строчки со счетами различного типа и посмотрите на результаты запроса. или воспользуйтесь программированием, как в печати журнала. В форме, видимо, придется прграммировать. См. форму HRMCompetanceSearch главное меню \ Управление персоналом \ Периодические операции \ подбор персонала | 
|  | 
|  30.09.2003, 09:21 | #12 | 
| Участник | 
			
			Если я правильно понял, то Damn требуется получить результирующий набор азписей, выбранных из двух (или более таблиц). Map тут не поможет. Единственное средство, которое приходит на ум - временные таблицы. Создаешь временную таблицу, определяешь ее поля, потом создаешь обработчик, который ее заполняет сначала записями из одной таблицы, потом из другой. В итоге временная таблица содержит то, что надо. По-моему, это единственный способ реализовать функциональность оператора UNION (кстати, в MS SQL Server он тоже имеется).
		 | 
|  | 
|  30.09.2003, 10:23 | #13 | 
| Участник | 
			
			Так, хорошо.   ИЛИ между линками разобрались как делается. Путём добавления поля-флажка. Но приведу небольшой примерчик: PHP код: 
			Цитата: 
		
			Единственное средство, которое приходит на ум - временные таблицы.
		
	 
				__________________ Дмитрий | 
|  | 
|  12.04.2004, 10:41 | #14 | 
| Участник | Цитата: 
		
			В форме, видимо, придется прграммировать. См. форму HRMCompetanceSearch главное меню \ Управление персоналом \ Периодические операции \ подбор персонала Цитата: 
		
			вот почему если к главному датасоурсу добавить только один со связью InnerJoin , то всё нормально - отобразятся только Спецификации(ItemType::BOM). А если убрать заремаривание и добавить второй, то отобразятся все записи. Как будто нельзя добавлять два дочерних датасоурса со связями InnerJoin. Или может в них ещё какие свойства надо заполнить.
		
	   
				__________________ Являться частью базы знаний, дабы не изобретать велосипед Делать больше, чем говорить | 
|  | 
|  12.04.2004, 16:33 | #15 | 
| Модератор | 
			
			А если проще? PHP код: 
			 | 
|  | 
|  13.04.2004, 11:28 | #16 | 
| Участник | 
			
			Хорошо, а если надо сделать так: К таблице InventTable подсоединяется таблица B, в которой должно быть по две записи на каждую в InventTable. Каким образом сделать так, чтобы при отсутствии записей в таблице B, в гриде отобразились бы по две InventTable с пустыми "заготовками", относящимися к B? 
				__________________ Являться частью базы знаний, дабы не изобретать велосипед Делать больше, чем говорить | 
|  | 
|  13.04.2004, 18:15 | #17 | 
| Юзовские | Цитата: 
		
			вот почему если к главному датасоурсу добавить только один со связью InnerJoin , то всё нормально - отобразятся только Спецификации(ItemType::BOM). А если убрать заремаривание и добавить второй, то отобразятся все записи. Как будто нельзя добавлять два дочерних датасоурса со связями InnerJoin. Или может в них ещё какие свойства надо заполнить.
		
	 И еще, мне кажеться что вам, Damn, нужно почитать о расширенных возможностях query. (Developers Handbook поиск по Advanced query range value expressions) Цитата: 
		
			К таблице InventTable подсоединяется таблица B, в которой должно быть по две записи на каждую в InventTable. Каким образом сделать так, чтобы при отсутствии записей в таблице B, в гриде отобразились бы по две InventTable с пустыми "заготовками", относящимися к B?
		
	 | 
|  | 
|  14.04.2004, 16:51 | #18 | 
| Участник | 
			
			2 metal: Читаете невнимательно: Цитата: 
		
			К таблице InventTable подсоединяется таблица B, в которой должно быть по две записи на каждую в InventTable. Каким образом сделать так, чтобы при отсутствии записей в таблице B, в гриде отобразились бы по две InventTable с пустыми "заготовками", относящимися к B?
		
	 
				__________________ Являться частью базы знаний, дабы не изобретать велосипед Делать больше, чем говорить | 
|  | 
|  14.04.2004, 18:42 | #19 | 
| Юзовские | Цитата: 
		
			Читаете невнимательно:
		
	 В одном гриде это можно сделать, используя временную таблицу. А если не в гриде, то использовать два датасоурса на одной таблице. Как в номенклатурнике на закладке Цена\Скидка. | 
|  | 
|  | 
| Опции темы | Поиск в этой теме | 
| Опции просмотра | |
| 
 |