2014-11-25 5 views
0

Date_Key에 따라 대상을 생성하기 위해 업데이트 문에서 수식을 만들었습니다. 테이블 '시험'이 개 관련 컬럼의 존재 :SSIS 2012 - 쉼표 뒤에 자릿수 (자릿수)를 지정하는 방법

'Date_Key'(INT)와 '대상'(DECIMAL)

은 다음 내가 구현하고자하는 논리가 될 때 :

UPDATE  Test 
SET   Target = 175+(2.879546*([Date_Key]-25)) 

이 작동하지만 쉼표 뒤에 3 자리 숫자를 사용하고 싶습니다.

누군가 나를 도울 수 있습니까?

미리 감사드립니다.

+1

"레코드가 추가됩니다"란 무엇을 의미합니까? 칼럼을 말하는거야? "레코드"는 일반적으로 열이 아니라 행을 참조합니다. –

+0

병적 인 호기심에서 당신의 논리를 이해하도록 도와 줄 수 있습니까? – billinkc

+0

매월 플러스 2.879546의 목표를 높이고 싶습니다. 목표는이 첫 번째 달에 175에서 시작합니다. FY 첫 번째 달의 날짜 키는 25였습니다. 두 번째 달의 날짜 키는 26 이었으므로 식은 2.879546만큼 대상을 늘립니다. 등등. – user3248190

답변

0

INT를보다 정확한 형식으로 변환해야합니다. 귀하의 경우 DECIMAL (X, 3)이어야합니다.

UPDATE  Test 
SET   Planned_Headcount = 175+(2.879546*(CAST([Date_Key] as DECIMAL(X,3))-25)) 

위의 "X"는 수학 결과를 포함 할만큼 큰 숫자 여야합니다. 12라면 충분 하겠지만, [Date_Key]의 값이 무엇인지 모르기 때문에 테스트해야 할 것입니다.

또한 업데이트하려는 십진수 열 ("대상"또는 "계획 인원"중 어느 쪽인지)에 최소 세 자릿수의 정확도 (즉, DECIMAL(x,3))가 있는지 확인하십시오.

이것은 이상한 요구 사항처럼 보입니다.

+0

안녕하세요, Eric, 정말 고마워요! Date_key 열은 정확한 숫자로만 존재합니다. 두 번째 제안이 트릭을 만들었습니다. 대상 열의 데이터 형식에서 3 자리 정밀도를 지정해야했습니다. 나는 이상한 요구 사항에 동의합니다. 데이터 마트의 목표를 채우기위한 임시 솔루션입니다. 다시 한 번 감사드립니다! – user3248190

관련 문제