Помогите с разбором и анализом sql запроса fastreport

Есть оракловский запрос

string sSQL = 
SqlFormat(select
  CMS.ARTICLE, CMS.name from  
  supermag.smcard cms left join (SELECT  ost.ARTICLE, sum (OST.QUANTITY) quanto from supermag.SMGOODS ost GROUP BY ost.ARTICLE ) ost on (ost.ARTICLE=CMS.ARTICLE and OST.QUANTO=0) 
  LEFT JOIN (SELECT logi.article FROM supermag.SMCARDSECURITYLOG 
  logi where logi.ACTIONCODE = 1 
  and logi.EVENTTIME between (+RepSqlText.ToSqlDate(sLastDate)+) and +RepSqlText.ToSqlDate(sFirstDate)+
  ) n on (n.article=cms.article) 
  LEFT JOIN (SELECT reps.article from supermag.FFMAPREP reps  
  where reps.saletype NOT IN ('WI', 'WO', 'IW', 'CS', 'CR', 'PO', 'PN', 'PE')
  )reps on (reps.ARTICLE=CMS.ARTICLE) 
  where CMS.ARTICLE=OST.ARTICLE 
  and OST.QUANTO=0 
  and cms.ACCEPTED=1  
  and n.article is null
  and reps.article is null
   GROUP BY CMS.ARTICLE, cms.Name
);

Это переменные которые выбирает пользователь в программе (+RepSqlText.ToSqlDate(sLastDate)+) and +RepSqlText.ToSqlDate(sFirstDate)+

В общем стоит задача, выдернуть карточки товаров которые созданы(logi.ACTIONCODE = 1) и старше на 90 дней чем выбранная дата( +RepSqlText.ToSqlDate(sFirstDate)+ ) которые не участвовали в операциях(where reps.saletype NOT IN ('WI', 'WO', 'IW', 'CS', 'CR', 'PO', 'PN', 'PE')) ну и с остатком 0 и разрешенным, но суть в том что недавно были сделаны операции до этих 90 дней и тогда товар не показывается, но эти операции входят в список разрешенных, думаю дело всетаки в дате?

Вопрос первый почему я не могу добавить где то в конце до груп бай

and reps.saletype is null

выдает ошибку

----- Прерывание работы программы -----
сообщение: "ORA-00904: "REPS"."SALETYPE": недопустимый идентификатор"

Вопрос второй как мне правильно сделать условие по дате тут?

logi.EVENTTIME between (+RepSqlText.ToSqlDate(sLastDate)+) and +RepSqlText.ToSqlDate(sFirstDate)+

Мне надо чтобы logi.EVENTIME был старше чем +RepSqlText.ToSqlDate(sFirstDate)+ минимум на 90 дней, т.е. мне надо рассматривать варианты которые старше на 90 дней чем выбранный вариант

UPD

Заметил как бы что попадают не все товары, произвел анализ товаров которые не попадают под запрос их просто нету в табличке SMGOODS т.е.

OST.QUANTO=0 or OST.QUANTO is null

куда его поставить?


Ответы (0 шт):