Добрый день, уважаемые коллеги!
Существует ли возможность с помощью Query создать запрос, который в SQL выглядит так:
X++:
select * from ExtendedTestData where Amount + Amount1 - Amount2 <> 0;
Следующее выражение
X++:
exQueryString = strfmt("(( %1 + %2 - %3 <> 0 ))",
fieldId2name(TableNum(ExtendedTestData), fieldNum(ExtendedTestData, Amount)),
fieldId2name(TableNum(ExtendedTestData), fieldNum(ExtendedTestData, Amount1)),
fieldId2name(TableNum(ExtendedTestData), fieldNum(ExtendedTestData, Amount2)));
приводит к ошибке:
Ошибка расширенного диапазона запроса: Синтаксическая ошибка рядом с 34.
А, например, вот такое выражение
X++:
exQueryString = strfmt("(( %1 + %2 - %3 > 0 ))", ...
Генерирует следующий SQL код
X++:
SELECT A.KEY_,A.AMOUNT,A.AMOUNT1,A.AMOUNT2,A.RECID
FROM EXTENDEDTESTDATA A
WHERE ((DATAAREAID=?)
AND (((AMOUNT+AMOUNT1)-AMOUNT2)>1=?))
ORDER BY A.DATAAREAID,A.RECID OPTION(FAST 1)
с ошибкой :
[Microsoft][ODBC SQL Server Driver][SQL Server]Line 1: Incorrect syntax near '='.
Со ссылкой
http://www.axaptapedia.com/Expressions_in_query_ranges знаком.
Собственно, сам вопрос: умеет ли парсер кверей разбирать текст запроса, содержащий арифметические выражения?