09.09.2005, 12:53 | #21 |
Developer
|
на Х++
PHP код:
SELECT A.ITEMID,A.BOMLEVEL,A.RECID FROM TMPTABLE A WHERE (A.DATAAREAID=?) AND EXISTS (SELECT 'x' FROM TMPTABLE2 B WHERE (B.DATAAREAID=?) AND EXISTS (SELECT 'x' FROM TMPTABLE3 C WHERE ((C.DATAAREAID=?) AND ((C.ITEMID=A.ITEMID) OR (B.ITEMID=A.ITEMID))))) OPTION(FAST 100) ну и с помощью Query: PHP код:
SELECT A.ITEMID,A.BOMLEVEL,A.RECID FROM TMPTABLE A WHERE (A.DATAAREAID=?) AND EXISTS (SELECT 'x' FROM TMPTABLE2 B WHERE (B.DATAAREAID=?) AND EXISTS (SELECT 'x' FROM TMPTABLE3 C WHERE ((C.DATAAREAID=?) AND ((C.ITEMID=A.ITEMID) OR (B.ITEMID=A.ITEMID))))) ORDER BY A.DATAAREAID,A.RECID OPTION(FAST 100) Вроде работает... но есть вопрос (хотя и не по теме): Кто-нибудь знает, как избавиться от "ORDER BY" при использовании Query? |
|
09.09.2005, 13:23 | #22 |
Участник
|
Семен-семеныч, сам же написал вариант с view, а расширять на Query не стал.
По поводу order by - судя по всему у вас нет индексов на таблице, по-этому Axapta автоматом создает индекс с RecId, его-то она и подставляет в Query.
__________________
Axapta v.3.0 sp5 kr2 |
|
09.09.2005, 13:36 | #23 |
Developer
|
Цитата:
Изначально опубликовано AndyD
Семен-семеныч, сам же написал вариант с view, а расширять на Query не стал. Цитата:
Изначально опубликовано AndyD
По поводу order by - судя по всему у вас нет индексов на таблице, по-этому Axapta автоматом создает индекс с RecId, его-то она и подставляет в Query. И поправте меня, если я в чем-то не прав... |
|
09.09.2005, 13:50 | #24 |
Участник
|
Да правильно, конечно. Я имел в виду сам принцип связывания таблиц
__________________
Axapta v.3.0 sp5 kr2 |
|