|
12.12.2012, 13:02 | #1 |
Участник
|
join таблиц с разным значением dataAreaId
Добрый день.
Помогите разобраться... Есть запись в table1 со значением dataAreaId == 1. Также есть поля RefRecId и RefCompanyId, ссылающиеся на запись в table2 со значением dataAreaId == 2. con - компании в которых нужно искать. Но... X++: select firstonly crosscompany :[con] table1 where table1.TTNId == TTNId && table1.dataAreaId == this.dataAreaId join table2 where table2.RecId == table1.RefRecId && table2.dataAreaId == table1.RefCompanyId; Сразу напишу что в запросе к базе почему-то дописывается table1.dataAreaId == table2.dataAreaId. Как этого избежать? |
|
|
За это сообщение автора поблагодарили: S.Kuskov (3). |
12.12.2012, 13:49 | #2 |
Участник
|
Сделайте по-старинке, без crossCompany:
X++: table1 = null; //нужно сбросить курсор, если до этого использовался с другой DataAreaId table2 = null; table1.company(this.dataAreaid); select firstonly table1 where table1.TTNId == TTNId; table2.company(table1.RefCompanyId); select firstonly table2 where table2.RecId == table1.RefRecId; |
|
|
За это сообщение автора поблагодарили: Airat (1). |
12.12.2012, 14:31 | #3 |
Участник
|
Прошу прощения, забыл написать про сортировку по table2. Таким образом, в моем случае по-старинке сделать наверно не получится. Ведь не факт, что
X++: select firstonly table1 where table1.TTNId == TTNId; |
|
12.12.2012, 15:17 | #4 |
Участник
|
Все равно придется сделать по-старинке. Только сначала записать промежуточные данные во временную таблицу, а потом уже сортировать по этой временной таблице, а не по table2.
|
|
12.12.2012, 15:34 | #5 |
Участник
|
У вас всегда на входе определен список из двух компаний?
Т.е. всегда определено, что table1.DataAreaId==1 и table2.DataAreaId == 2?
__________________
Axapta v.3.0 sp5 kr2 |
|
12.12.2012, 16:05 | #6 |
Участник
|
|
|
12.12.2012, 16:12 | #7 |
Участник
|
Посмотрите тему связанные данные из разных компаний. Там разбирался подобный пример.
По-моему, в вашем случае подойдет только добавление третьей таблицы со связями (если делать одним запросом в БД)
__________________
Axapta v.3.0 sp5 kr2 |
|
Теги |
crosscompany, join, баг |
|
|