하려는것
-- IF A00591TEXT <> '' THEN (A00591TGT - A00184TGT) ELSE 0
A00591TEXT -> MAX(CASE JJ.CHAR_ID WHEN 'A00591' THEN JJ.SPEC_TEXT END) A00591TEXT
A00591TGT -> MAX(CASE JJ.CHAR_ID WHEN 'A00184' THEN JJ.TGT END) AS A00184TGT
A00591TGT -> MAX(CASE JJ.CHAR_ID WHEN 'A00591' THEN JJ.TGT END) AS A00591TGT
이렇게 됩니다
case when convert(varchar(50), ISNULL(MAX(CASE JJ.CHAR_ID WHEN 'A00591' THEN JJ.SPEC_TEXT END),'')) = '' then convert(varchar(50),isnull(MAX(CASE JJ.CHAR_ID WHEN 'A00591' THEN JJ.TGT END),0) - isnull(MAX(CASE JJ.CHAR_ID WHEN 'A00184' THEN JJ.TGT END),0))
else 0 end num_19,
이렇게 select문을 만들어보니
subtract 연산자에 대한 피연산자 데이터 형식 varchar이(가) 잘못되었습니다.
이런 에러가 뜨는데..
어떻게 수정해야 할까오..
Comment 3
-
아싸라비아콜롬비아
2018.02.06 10:56
-
withSQLServer
2018.02.06 12:09
1. 테이블 생성 스크립트
2. 예시 데이터 스크립트
3. 문제가있는 쿼리명령
위 3가지가 없다면 정확한 도움드리기 어려울 것 같습니다.
-
아싸라비아콜롬비아
2018.02.06 13:22
아네... 알겠습니다... 일단은
제가 형변환에 대한 기초가 좀 부족한것 같네요.
case when convert(numeric, MAX(CASE JJ.CHAR_ID WHEN 'A00591' THEN JJ.SPEC_TEXT END)) <> '' then (convert(numeric,MAX(CASE JJ.CHAR_ID WHEN 'A00591' THEN JJ.TGT END)) - convert(numeric,MAX(CASE JJ.CHAR_ID WHEN 'A00184' THEN JJ.TGT END))) else 0 end num_19,
이렇게 해도 동일하네요