저는 SQL에 정통하지 않습니다. "Vendor Name"과 "Vendor Number"를 보고서에 포함시키려는 다음 사례를 사용하려고합니다.중첩 된 사례 오류 LEFT 또는 SUBSTRING 함수에 잘못된 길이 매개 변수가 전달되었습니다.
공급 업체 수
CASE WHEN [GLPOST].[SRCELEDGER] = 'AP'
THEN
(SELECT LEFT([GLJED].[TRANSREF],
CHARINDEX('-',[GLJED].[TRANSREF])-1)
FROM [GLJED] WHERE [GLJED].[TRANSNBR] = '0000000020'
AND [GLPOST].[BATCHNBR] = [GLJED].[BATCHNBR]
AND [GLPOST].[ENTRYNBR] = [GLJED].[JOURNALID]
)
ELSE '' END
공급 업체 이름
CASE WHEN [GLPOST].[SRCELEDGER] = 'AP'
THEN
(SELECT [APVEN].[VENDNAME]
FROM [APVEN]
WHERE [APVEN].[VENDORID] = (SELECT LEFT([GLJED].[TRANSREF],
CHARINDEX('-',[GLJED].[TRANSREF])-1)
FROM [GLJED]
WHERE [GLJED].[TRANSNBR] = '0000000020'
AND [GLPOST].[BATCHNBR] = [GLJED].[BATCHNBR]
AND [GLPOST].[ENTRYNBR] = [GLJED].[JOURNALID])
)
ELSE '' END
문제가
, 내가지고있어 오류
"왼쪽 또는 SUBSTRING 함수에 전달 된 매개 변수 길이가 잘못되었습니다."
[GLJED]. [TRANSREF]에 "-"트랜잭션이 없기 때문입니다.
나는이 문제를 해결하기 위해 여러 가지 방법을 시도했지만 잘못하고 있습니다. "-1"을 제거하면 쿼리가 실행되지만 찾고있는 데이터가 제공되지 않습니다. 공급 업체 이름과 번호를 찾으려면 "-"왼쪽의 데이터가 필요합니다.
CHARINDEX ('-', [GLJED]. [TRANSREF]) = 0 인 경우 select 문 안에 다른 사례를 넣으려고했으나 잘못된 위치에 넣어야합니다.
친절하게, 나는 찾고 있었다!
아마 때문에 CHARINDEX ('-'[GLJED].[TRANSREF]) - [GLJED]. [TRANSREF]에 -가 없으면 1은 -1입니다. – Matt
맞아요, 실종 되었기 때문에 "-"오류를 일으키는 "0 - 1"이라고 기본적으로 말합니다. 나는 아직 그것을 고칠 수있는 방법을 찾지 못했다. – user1486004