Показать сообщение отдельно
Старый 26.03.2009, 20:18   #1  
ATimTim is offline
ATimTim
Участник
 
395 / 13 (1) ++
Регистрация: 10.06.2004
Адрес: Питер
Advanced query range value expressions: поле таблицы - имя вcтроенной функции year().
При попытке создания расширенного условия выборки по полю Year таблицы OLAPTimeByDate

PHP код:
qbds.addRange(fieldNum(OLAPTimeByDay,Year)).value(
           
strFmt("( %1 == %2 ) ",  fieldStr(OLAPTimeByDay,Year),   2008  )); 
возникает ошибка:


Ошибка расширенного диапазона запроса: Синтаксическая ошибка рядом с 7.


Подозреваю, что причина в глобальной функции: int year(date date)

Интересует решение данной проблемы: как наложить условие на поле Year ?
Может быть есть какая-нибудь волшебная скобочка ?


P.S.
1) Переименовать поле таблицы\Добавить аналогичное с другим именем - не предлагать
2) Условие выборки сознательно упрощено.
3) Полный текст джоба
PHP код:
static void Job777(Args _args)
{
  
Query                 q = new Query();
  
QueryBuildDataSource  qbds;
  
QueryRun              qr;
  
int                   i;
  ;

  
qbds q.addDataSource(tablenum(OLAPTimeByDay));

 
  
qbds.addRange(fieldNum(OLAPTimeByDay,Year)).value(
       
strFmt("(%1 == %2 )"fieldStr(OLAPTimeByDay,Year),  2008  ));

  
qr = new QueryRun(q);
  while (
qr.next())
  {
    
i++;
  }

  
info(int2str(i));