
есть отчет есть куча аргументов объединённых в фильтре по И (And)
ну например
Код: Выделить всё
(if(status='',1,if(status = clt_status,1,0))>0 )
and
(period>= wait)
and
(prod_all >= count )
and
(if(trim(type_b)='',1,if(type_b=mid( prod_type ,5,2),1,0))>0)
and
(if(trim(type)='',1,if(type=mid( prod_type ,10,2),1,0))>0)
and
(if(trim( product )='',1,pos( upper( prod_name ), upper( product ) ,1))>0)
and
(if(trim( oblast )='' ,1,pos(upper( cnt_oblast ), upper( oblast) ,1)) >0)
and
(if(trim( gorod )='',1,pos(upper( cnt_gorod ), upper( gorod ),1))>0)

говоря по русски - мне нужно чтобы область и город обрабатывались вместе независимо от того заполнен один или другой аргумент
как это сделать - вообше не понимаю
если бы можно было в фильтре написать такую конструкцию
Код: Выделить всё
...
and
if(
case (if(trim( oblast )='' and trim( gorod )='',0,
if(trim( oblast )<>'' and trim( gorod )='',1,
if(trim( oblast )='' and trim( gorod )<>'',3,
if(trim( oblast )<>'' and trim( gorod )<4>0,1,0)
when 0 then if(pos(upper( cnt_oblast ), upper( oblast) ,1)) >0,1,0
when 1 ....
when 2 ....
when 3 .... )>0
чувствую что пошёл не туда - подскажите более простой синтаксис объединения по ИЛИ (or)
типа если сделать просто
Код: Выделить всё
...
and
(if(
if(trim( oblast )='' ,1,pos(upper( cnt_oblast ), upper( oblast) ,1)) +
if(trim( gorod )='',1,pos(upper( cnt_gorod ), upper( gorod ),1))>0)
выручайте товарисча
