Помогите с разбором и анализом 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
куда его поставить?