Показать сообщение отдельно
Старый 29.01.2011, 16:06   #1  
Corel is offline
Corel
Участник
Ex AND Project
 
73 / 15 (1) ++
Регистрация: 19.04.2007
Расширенный диапазон в Query range: вычесть число из даты
Никак не могу побороть один момент в запросе.
Нужно сделать аналог конструкции
X++:
where table1.Date < systemDateGet() - table2.Days
Поначалу было такое, но данные отбирались неверно - видимо, вычитались не дни, а что-то другое (секунды?).
X++:
qbdsTable1.addRange(fieldNum(Table1, Date)).value(
    strfmt('(Date < %1 - %2.%3))',
             date2StrXpp(systemDateGet()),
             query.dataSourceTable(tableNum(Table2)).name(), 
             fieldStr(Table2, Days)));
Думал, использовать SQL - функцию, но идёт постоянная ошибка расширенного диапазона.
X++:
qbdsTable1.addRange(fieldNum(Table1, Date)).value(
    strfmt('(Date < dateadd(%1.%2, -%3.%4, %5))',
             query.dataSourceTable(tableNum(Table1)).name(), 
             fieldStr(Table1, Date),
             query.dataSourceTable(tableNum(Table2)).name(), 
             fieldStr(Table2, Days),
             date2StrXpp(systemDateGet())));
Третий вариант: вычесть из текущей даты значение интересующего поля и сравнить результат с полем во второй таблице тоже не работает, но ошибка уже другая: неверный параметр.

X++:
qbdsTable1.addRange(fieldNum(Table1, Date)).value(
    strfmt('((%1 - %2.%3) > %4.%5)',
             date2StrXpp(systemDateGet()),
             query.dataSourceTable(tableNum(Table1)).name(), 
             fieldStr(Table1, Date),
             query.dataSourceTable(tableNum(Table2)).name(), 
             fieldStr(Table2, Days)));