내가 올바르게 입력을 이해하고 출력 Excel 스프레드 시트 인 경우 다음과 같이 나는 그것을있다. http://technet.microsoft.com/en-us/library/ms141683.aspx
데이터 유형 :에서
. Excel 드라이버 은 제한된 데이터 집합 만 인식합니다. 예를 들어 모든 숫자 열은 (DT_R8)으로 해석되며 모든 문자열 열 (메모 열보다 )은 255 자 유니 코드 문자열 (DT_WSTR)로 해석됩니다. 다음과 같이 통합 서비스가 엑셀 데이터 형식 매핑 :
숫자를 - 배정 밀도 부동 소수점 (DT_R8) 그래서
, 나는 유일한 해결책이 합치, 스프레드 시트의 문자열처럼 저장하는 것입니다 생각 오른쪽에 필요한만큼 0을 지정하십시오. 다음은 3 자릿수의 정밀도를 가진 파생 열의 코드입니다.
FINDSTRING((DT_WSTR,50)(DT_DECIMAL,3)[Debit Amt],",",1) == 0 ? (DT_WSTR,50)(DT_DECIMAL,3)[Debit Amt] + ",000" : (DT_WSTR,50)(DT_DECIMAL,3)[Debit Amt] + REPLICATE("0",4 - LEN(SUBSTRING((DT_WSTR,50)(DT_DECIMAL,3)[Debit Amt],FINDSTRING((DT_WSTR,50)(DT_DECIMAL,3)[Debit Amt],",",1),LEN((DT_WSTR,50)(DT_DECIMAL,3)[Debit Amt]))))
결과로 얻고있는 것은 무엇이며 어떤 오류가 있습니까? – HLGEM
@HLGEM 안녕하세요, 내가 쿼리를 실행할 때 나는 소수점을 가진 모든 수치를 얻지 못한다. 원본 파일 8512의 결과를 얻지 만 8512.00으로 변경하려고합니다. 일부에는 십진수가 없으며 일부는 십진수의 일부 (예 : 1234.5이지만 1234.50이어야 함)와 일부는 십진수가 올바르게 설정되어 있습니다. 나는 변환이 너무 어려워서 변환하지 못하고있다. – GabrielVa
((DT_DECIMAL, 2) [Debit Amt] * 1.000001) ?? – GabrielVa