변환 오류를 계속 발생시키는 아래 쿼리가 있습니다. 이 작업을 수행하는 많은 방법을 시도했지만 여전히 동일한 오류가 발생합니다. 제거 과정 이제 이것이 하드 코딩 된 0.715 값과 관련이 있다고 생각합니다. 나는 이것을 십진수로 강제하는 지, 또는 코드 시작 부분 에이 SET와 변수를 갖는 것이 더 나은지 확실하지 않습니다.
SELECT CAST(DATEPART(yyyy, YEAR) as INT) AS YEAR,
COUNT(ID) AS ID,
SUM(VALUE) AS VALUE,
SUM(PREMIUM) AS PREMIUM,
SUM(try_convert(float,USERID1)) AS VALUE1,
COALESCE(SUM(PREMIUM)/(SUM(try_convert(float,NULLIF(USERID1,0)))*0.715),0) AS 'PROFIT'
SUM(CAST(USERID1 AS float))/SUM(PREMIUM) AS 'PROFIT%'
INTO #YEAR_VALUE
FROM #DATA LT
INNER JOIN dbo.AccountDB P ON LT.ID = P.ID
GROUP BY INCEPTDATE
어떤 도움이라도 대단히 감사하겠습니다.
미리 감사드립니다
몇 가지 논리를 앞뒤로 가지고 있으며 먼저 try_parse를 수행 한 다음 nullif를 수행해야합니다. Try_parse는 지정된 유형으로 캐스트 할 수없는 경우 일반적으로 null을 반환합니다. 그런 다음 null을 0.0으로 변환해야합니다.
coalesce (sum (premium) / (sum (nullif (try_convert (float, 'userId), 0.0)) * 0.715), 0.0) AS'profit '
또한 부동 또는 소수를 예상하는 경우 0에 0.0을 사용하십시오.
힌트 : 당신과 다음 사람의 눈을 저장하고 대문자를 사용할 필요가 없습니다. 그것은 70 년대에 돌아 왔습니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다