AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск Все разделы прочитаны

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 19.01.2004, 15:04   #1  
@x is offline
@x
Участник
 
2 / 10 (1) +
Регистрация: 26.12.2003
? "LIKE" и "OR" в "qbds"
Здравствуйте.

Подскажите, как в qbds выразить такое условие?

(Table1.Field1 LIKE “Значение%”) OR (Table2.Field2 LIKE “Значение%”)
Старый 19.01.2004, 15:24   #2  
raz is offline
raz
NavAx
Аватар для raz
NavAx Club
Лучший по профессии 2014
Лучший по профессии 2009
 
1,494 / 1065 (38) ++++++++
Регистрация: 22.07.2003
Адрес: МО
Прежде всего надо внимательно читать форум http://www.axforum.info/forums/showt...6259#post26259
Старый 19.01.2004, 16:40   #3  
@x is offline
@x
Участник
 
2 / 10 (1) +
Регистрация: 26.12.2003
Цитата:
Изначально опубликовано raz
Прежде всего надо внимательно читать форум http://www.axforum.info/forums/showt...6259#post26259
Согласен. Но и вопрос тоже необходимо читать внимательно.
Старый 19.01.2004, 16:59   #4  
Sanya is offline
Sanya
Участник
 
172 / 11 (1) +
Регистрация: 24.04.2003
Адрес: Киев
а так
http://www.axforum.info/forums/showt...&threadid=4106
Старый 19.01.2004, 17:01   #5  
dn is offline
dn
Участник
Самостоятельные клиенты AX
 
486 / 159 (6) ++++++
Регистрация: 26.03.2003
Адрес: Москва
Вообще-то, в той ветке есть необходимые ссылки.

Если подытожить, то через query это сделать нельзя, но можно через select ...
Старый 19.01.2004, 18:13   #6  
raz is offline
raz
NavAx
Аватар для raz
NavAx Club
Лучший по профессии 2014
Лучший по профессии 2009
 
1,494 / 1065 (38) ++++++++
Регистрация: 22.07.2003
Адрес: МО
Цитата:
Если подытожить, то через query это сделать нельзя, но можно через select ...
ИМХО, можно... читайте чужие постинги внимательнее.
Старый 19.01.2004, 18:20   #7  
raz is offline
raz
NavAx
Аватар для raz
NavAx Club
Лучший по профессии 2014
Лучший по профессии 2009
 
1,494 / 1065 (38) ++++++++
Регистрация: 22.07.2003
Адрес: МО
PHP код:
public void init()
{
    
Query                   query;
    
QueryBuildDataSource    qbds_Table0;
    
QueryBuildDataSource    qbds_Table1;
    
QueryBuildDataSource    qbds_Table2;
    ;
    
super();
    
Query = new Query();
    
qbds_Table0Query.addDataSource(tablenum(Table0),"t0");
    
qbds_Table0.relations(false);

    
qbds_Table1qbds_Table0.addDataSource(tablenum(Table1),"t1");
    
qbds_Table1.joinMode(JoinMode::ExistsJoin);
    
qbds_Table1.fetchMode(0);
    
qbds_Table1.relations(false);

    
qbds_Table2qbds_Table0.addDataSource(tablenum(Table2),"t2");
    
qbds_Table2.joinMode(JoinMode::ExistsJoin);
    
qbds_Table2.fetchMode(0);
    
qbds_Table2.relations(false);

    
qbds_Table2.addRange(fieldnum(Table2,Field1 )).value("( (t1.Field1 LIKE 'Значение%')  || (t2.Field2 LIKE 'Значение%'))");

    
this.query(Query);

    
Info(this.query().dataSourceNo(1).tostring());

Старый 19.01.2004, 18:30   #8  
dn is offline
dn
Участник
Самостоятельные клиенты AX
 
486 / 159 (6) ++++++
Регистрация: 26.03.2003
Адрес: Москва
Да, через ExistsJoin с несколькими источниками конечно можно, только при этом тоже ограничений хватает ...
http://www.axforum.info/forums/showt...?threadid=4188
Старый 19.01.2004, 21:01   #9  
Maxim Gorbunov is offline
Maxim Gorbunov
Administrator
Соотечественники
Лучший по профессии 2009
 
2,483 / 645 (26) +++++++
Регистрация: 27.11.2001
Адрес: Dubai, UAE
Цитата:
Изначально опубликовано raz
ИМХО, можно... читайте чужие постинги внимательнее.
raz, LIKE так использовать нельзя. Он не парсится автоматически.
__________________
Not registered yet? Register here!
Have comments, questions, suggestions or anything else regarding our web site? Don't hesitate, send them to me
Старый 20.01.2004, 11:14   #10  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Но вроде можно так
PHP код:
<...>.value("( (t1.Field1 == 'Значение*')  or (t2.Field2 == 'Значение*'))"); 
Т.е. надо использовать Аксаптовсие метасимволы и операторы.
Старый 20.01.2004, 11:53   #11  
dn is offline
dn
Участник
Самостоятельные клиенты AX
 
486 / 159 (6) ++++++
Регистрация: 26.03.2003
Адрес: Москва
Сергей, это не LIKE !!! Звездочка здесь не будет восприниматься как специальный символ.

p.s. С existsjoin я похоже тоже погорячился... Скорее всего подойдёт outer join
Старый 20.01.2004, 12:07   #12  
Maxim Gorbunov is offline
Maxim Gorbunov
Administrator
Соотечественники
Лучший по профессии 2009
 
2,483 / 645 (26) +++++++
Регистрация: 27.11.2001
Адрес: Dubai, UAE
Цитата:
Изначально опубликовано dn
p.s. С existsjoin я похоже тоже погорячился... Скорее всего подойдёт outer join
Да, ExistJoin поможет в случае использования LIKE и AND. Другое дело, что любой запрос с LIKE и OR можно легко преобразовать в запрос с NOT LIKE и AND, в котором уже пригодится ExistsJoin (вернее NotExistsJoin).
__________________
Not registered yet? Register here!
Have comments, questions, suggestions or anything else regarding our web site? Don't hesitate, send them to me
Старый 20.01.2004, 12:33   #13  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Изначально опубликовано dn
Сергей, это не LIKE !!! Звездочка здесь не будет восприниматься как специальный символ.
Спасибо. Жаль, что сам не проверил.
Старый 20.01.2004, 13:09   #14  
dn is offline
dn
Участник
Самостоятельные клиенты AX
 
486 / 159 (6) ++++++
Регистрация: 26.03.2003
Адрес: Москва
Максим, спасибо, что напомнил азы булевой алгебры, а то меня что-то понесло
По-хорошему, нужно лишь сделать Union между двумя источниками данных, на каждом из которых наложено по одному Like. Теоретически для отчета можно использовать фитчу с несвязанными источниками на одном уровне в Query. Т.е в отчет вроде попадет выборка по первому источнику данных, а затем по второму. Хотя это будет довольно криво.
Старый 20.01.2004, 13:20   #15  
Maxim Gorbunov is offline
Maxim Gorbunov
Administrator
Соотечественники
Лучший по профессии 2009
 
2,483 / 645 (26) +++++++
Регистрация: 27.11.2001
Адрес: Dubai, UAE
К сожалению, фича эта работает через раз. Извините, что немного оффтоп, наверное, но просто только что в очередной раз с этим столкнулся. Наболело

В общем, если используется GroupBy, то несвязанные DataSource на одном уровне вложенности не обрабатываются (только первый). Такие дела.

В данном случае, правда, такой вариант вполне подходит.
__________________
Not registered yet? Register here!
Have comments, questions, suggestions or anything else regarding our web site? Don't hesitate, send them to me
Теги
запрос (query), ax3.0

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
В запросе "слиплись в кучу измерения", как выйти из положения? Shakr DAX: Программирование 5 24.11.2006 12:48
Использование "like" при работе с классом "QueryBuildRange" poul DAX: Программирование 18 11.08.2006 12:20
баг в 2.5. Будьте осторожнее с символом "_" подчеркивание levsha DAX: Программирование 5 07.12.2004 12:26
"Сопоставление фактур с оплатами" и "Сопоставление открытых проводок" chel DAX: Функционал 2 16.09.2004 12:03
Как в range на одно и тоже контейнерное поле поставить условие: "исключ." && like Pustik DAX: Программирование 15 03.07.2004 11:54
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 07:58.