2013-07-29 2 views
0

Я хочу добавить еще одну колонку в эту таблицу, в которой на лицевой панели отображается надпись «Наличные деньги», если для 1-го взноса «Деньги» и режим для 2-го взноса в «Электронном» - режим «Наличный».Как проверить две записи SQL для одного условия?

PersonID InstalmentNumber DateOfInstalment   Mode 
50023467 2     15-Mar-12    Electronic 
50023467 1     15-Feb-12    Electronic 
50023468 2     5-Apr-12    Cash 
50023468 1     5-Mar-12    Cash 
50023469 2     15-Mar-12    Electronic 
50023469 2     15-Mar-12    Electronic 
50023469 1     15-Feb-12    Electronic 
50023469 1     15-Feb-12    Cash 
50027967 2     15-Mar-12    Electronic 

Ожидаемый результат:

PersonID InstalmentNumber DateOfInstalment   Mode   Flag 
50023467 2     15-Mar-12    Electronic  
50023467 1     15-Feb-12    Electronic 
50023468 2     5-Apr-12    Cash 
50023468 1     5-Mar-12    Cash 
50023469 2     15-Mar-12    Electronic 
50023469 2     15-Mar-12    Electronic 
50023469 1     15-Feb-12    Cash 
50023469 1     15-Feb-12    Cash   Cash To Electronic 
50027967 2     15-Mar-12    Electronic 
+0

, что является ожидаемым результатом? –

+0

@MontyPython Вы считаете мой ответ? – Parado

ответ

2

Попробуйте так:

select distinct t.PersonID,t.InstalmentNumber,t.DateOfInstalment,t.Mode, 
     case 
      when x.PersonID is not null 
      and t.Mode = 'Cash' 
      and t.InstalmentNumber = 1 
      then 'Cash to Electronic' 
      else null 
     end as Flag 
from tab t 
left join tab x on x.PersonID = t.PersonID AND 
        x.Mode = 'Electronic' AND 
        x.InstalmentNumber = 2 

Sql Fiddle Demo

Смежные вопросы