2017-09-23 11 views
0

私はケースを使用していたときに、このようなステートメント:サーバーが入院し、IPを保持しませんはなぜCASEを行いWHEN文グループと同様の変数(SASのPROCのSQL)

, case when majcat in (1,2,3,4,5) then "Inpatient" 
     when majcat in (3) then "IP-Surgical" 
     else "N/A" end as serv_cat 

... - それを一緒にグループ化する - 別個の - 外科。なぜこれが起こっているのですか?どのように修正できますか?ここで

は、コンテキストの完全なコードです:

proc sql; 
create table raw_claims_summ as 
select pcp_npi 
     , pcp_name 
     , practice_name 
     , rpt_cut_1 
     , rpt_cut_2 
     , sum(paid) 
     , sum(admits) 
     , sum(days) 
     , sum(units) 
     , case when majcat in (1,2,3,4,5) then "Inpatient" 
      when majcat in (3) then "IP-Surgical" 
      else "N/A" end as serv_cat 
from raw_claims 
group by 1,2,3,4,5,10 
order by 1 
;quit; 
+1

? –

+1

あなたはmajcat = 3、InpatientとIP-Surgicalの2行を使いたいですか? –

答えて

3

あなたが最初when句から3を削除する必要があります:あなたが "3" のために欲しいです何の結果

CASE WHEN majcat IN (1, 2, 4, 5) THEN "Inpatient" 
    -- 3 removed here ---^ 
    WHEN majcat in (3) THEN "IP-Surgical" 
    ELSE "N/A" 
END AS serv_cat 
+0

なぜ '' majcat = 3'の代わりに '(3)'にmajcatがあるのですか? – Sami

+4

@Sam私はOPのフォームを保管していました。 'in'を使うのは間違っているわけではなく、ちょっと冗長です。あなたは間違いなく '='を使うことができます。 – Mureinik