2015-03-16 3 views
0

Подготавливая запрос, который я буду использовать в Crystal Report , запрос работает нормально до сих пор, но я хочу добавить еще один столбец (фиктивный столбец), который будет заполняется на основе состояния, это запрос:создать столбец-dummy в запросе, что его значение исходит из условия

select AcctCode 
    , AcctName 
    , Segment_0 + '-'+ Segment_1 as Acctnum 
    , max(refdate) 
    , min(refdate) 
    , sum(debit) as Debit 
    , sum(credit)as Credit 
from oact t0 
    inner join jdt1 t1 on t0.acctcode = t1.Account 
where ( Segment_0 LIKE '01%' 
     or segment_0 like '02%' 
     or Segment_0 like '03%' 
    ) 
     and 
     (t0.Segment_1 = '01') 
     and (refdate between '2014-01-31' and '2015-12-27') 
group by AcctCode, AcctName,Segment_0, Segment_1 
order by AcctCode 

, если Segment_0 это начать с «01», то значение в фиктивной столбце будет показывать «A» , если Segment_0 будет начинаться с ' 02 ', тогда значение в столбце фиктивной строки будет показывать' L ' , если Segment_0 начинается с' 03 ', тогда значение в фиктивный столбец будет показывать «E» я пытался использовать, если заявление, и случай, но удача была не на моей стороне :(

ответ

0

попробовать это:

select AcctCode 
    , AcctName 
    , Segment_0 + '-'+ Segment_1 as Acctnum 
    , max(refdate) 
    , min(refdate) 
    , sum(debit) as Debit 
    , sum(credit)as Credit 
    , case when Segment_0 LIKE '01%' then 'A' 
      when segment_0 like '02%' then 'L' 
      when Segment_0 like '03%' then 'E' 
      else 'X' 
     end dummy_column 
from oact t0 
    inner join jdt1 t1 on t0.acctcode = t1.Account 
where ( Segment_0 LIKE '01%' 
     or segment_0 like '02%' 
     or Segment_0 like '03%' 
    ) 
     and 
     (t0.Segment_1 = '01') 
     and (refdate between '2014-01-31' and '2015-12-27') 
group by AcctCode, AcctName,Segment_0, Segment_1 
order by AcctCode 
+0

tha'ts правильно и работают хорошо, спасибо для вас, теперь я знаю правильный синтаксис для этого в будущем :) :):) thx –