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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 25.09.2006, 12:22   #1  
Protey is offline
Protey
Участник
 
143 / 15 (1) ++
Регистрация: 22.09.2005
Адрес: Сургут
Помогите такой вопрос написать в Аксапте
Запрос на SQL

Код:
select * from Table where a1 not like '%*'
То есть исключить те строки, где а1 оканчивается на *
Старый 25.09.2006, 12:34   #2  
George Nordic is offline
George Nordic
Модератор
Аватар для George Nordic
Злыдни
 
4,479 / 1250 (50) ++++++++
Регистрация: 17.12.2003
Адрес: Moscow
Записей в блоге: 9
X++:
select * from Table where a1 like ! '/*'
Старый 25.09.2006, 12:36   #3  
Protey is offline
Protey
Участник
 
143 / 15 (1) ++
Регистрация: 22.09.2005
Адрес: Сургут
Типы операнда не совместимы с оператором.

хотя a1 тип String
Старый 25.09.2006, 12:39   #4  
Protey is offline
Protey
Участник
 
143 / 15 (1) ++
Регистрация: 22.09.2005
Адрес: Сургут
Без восклицательного знака компилиться
Старый 25.09.2006, 12:41   #5  
oip is offline
oip
Axapta
Лучший по профессии 2014
 
2,564 / 1416 (53) ++++++++
Регистрация: 28.11.2005
Записей в блоге: 1
X++:
static void Job46(Args _args)
{
    Query q=new Query();
    QueryBuildDataSource qbds;
    QueryRun qr;
    VendTable vendTable;
;
    q.addDataSource(tableNum(VendTable)).addRange(fieldNum(Vendtable, accountNum)).value('!*а');
    qr = new QueryRun(q);
    while (qr.next())
    {
        vendTable = qr.get(tableNum(VendTable));
        info (vendTable.AccountNum);
    }
}
Старый 25.09.2006, 12:42   #6  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
Во-первых, Георгий перепутал символ слеша - нужен для escaping'га - back-slash ('\')
А во-вторых , нужно ! поставить перед всем условием а не перед значением
where !(a1 like '\*');
Но даже так запрос не будет отрабатывать так как вам нужно.
По идее, надо бы написать что-то типа '*\*' - но компилятор не хочет понимать эту строку так, как нам бы этого хотелось
Старый 25.09.2006, 12:45   #7  
oip is offline
oip
Axapta
Лучший по профессии 2014
 
2,564 / 1416 (53) ++++++++
Регистрация: 28.11.2005
Записей в блоге: 1
Хм... Надо, чтобы именно на символ '*' не заканчивался?
Старый 25.09.2006, 12:46   #8  
oip is offline
oip
Axapta
Лучший по профессии 2014
 
2,564 / 1416 (53) ++++++++
Регистрация: 28.11.2005
Записей в блоге: 1
X++:
static void Job46(Args _args)
{
    Query q=new Query();
    QueryBuildDataSource qbds;
    QueryRun qr;
    VendTable vendTable;
;
    q.addDataSource(tableNum(VendTable)).addRange(fieldNum(Vendtable, accountNum)).value('!*\\*');
    qr = new QueryRun(q);
    while (qr.next())
    {
        vendTable = qr.get(tableNum(VendTable));
        info (vendTable.AccountNum);
    }
}
Старый 25.09.2006, 12:49   #9  
oip is offline
oip
Axapta
Лучший по профессии 2014
 
2,564 / 1416 (53) ++++++++
Регистрация: 28.11.2005
Записей в блоге: 1
Или
X++:
while select * from VendTable where !(vendTable.AccountNum like '*\\*')
{
    info (vendTable.AccountNum);
}
Старый 25.09.2006, 12:51   #10  
Protey is offline
Protey
Участник
 
143 / 15 (1) ++
Регистрация: 22.09.2005
Адрес: Сургут
Цитата:
Сообщение от oip Посмотреть сообщение
Или
X++:
while select * from VendTable where !(vendTable.AccountNum like '*\\*')
    {
        info (vendTable.AccountNum);
    }
зачем двойной слэш?
По моему одного достаточно
Старый 25.09.2006, 12:52   #11  
Protey is offline
Protey
Участник
 
143 / 15 (1) ++
Регистрация: 22.09.2005
Адрес: Сургут
Спасибо за помощь!
Старый 25.09.2006, 12:52   #12  
oip is offline
oip
Axapta
Лучший по профессии 2014
 
2,564 / 1416 (53) ++++++++
Регистрация: 28.11.2005
Записей в блоге: 1
Цитата:
Сообщение от Protey Посмотреть сообщение
зачем двойной слэш?
По моему одного достаточно
Проверь.

PS Про то, что вместо спасибо кликают на зеленый квадратик говорить не буду, т.к. Вы все равно не сможете этого сделать. Надо бы, чтобы ограничение на репутацию одному и тому же юзеру было не "не менее трех других", а "Не менее трех других или не менее _сколько-то там_ дней", тогда и накрутки не будет, но при этом и поблагодарить всегда можно будет.

Последний раз редактировалось oip; 25.09.2006 в 12:56.
Старый 25.09.2006, 12:55   #13  
Protey is offline
Protey
Участник
 
143 / 15 (1) ++
Регистрация: 22.09.2005
Адрес: Сургут
Проверил на формочке, вставлял в "Найти"
С одним слэшом нормально работает, а вот с двумя вернул пару строк, у которых есть "\" в имени
Старый 25.09.2006, 13:04   #14  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
Ты проверь в запросе - в запросе оно правильно отработает - так как там по-другому escaping спец.символов делается.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Вопрос по модулю Расчеты с персоналом. Выплата заработной платы. Keks DAX: Функционал 7 28.12.2009 10:31
Вопрос по Проектам PSA DAX: Функционал 35 19.01.2007 22:26
Standart Costing, Direct Costing и механизмы их реализации в Аксапте slava09 DAX: Функционал 55 05.06.2006 11:00
Еще вопрос про покрытие по аналитикам в Сводном планировании rt2 DAX: Функционал 3 24.03.2006 18:56
Скорость в Аксапте Алексей Контев DAX: Прочие вопросы 13 25.06.2002 14:37

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

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

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