2017-09-23 9 views
0

나는 케이스를 사용하고 때이 같은 문 : 서버가 입원 환자와 IP를 유지하지 않습니다왜 CASE를 않는 경우 문 그룹 유사한 변수 (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 

... - 외과 적으로 그것들을 함께 묶어 놓는다. 왜 이런 일이 일어나고 어떻게 해결할 수 있습니까? 첫 번째 when 절에서 3을 제거해야

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

:

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 
당신이 "3"에 대해 원하는 무엇 결과
+0

왜''majcat = 3' 대신'(3)'에 majcat이 있을까요? – Sami

+4

@Sam 나는 OP의 형태를 유지하고있었습니다. 'in'을 사용하는 것은 잘못이 아니며 약간 중복됩니다. 대신에'='를 사용할 수 있습니다. – Mureinik