execute asp..US_PURCHASE_REPORT_TradeAllRequestList01_Period_ubi '1300','(2676,2677,2680,2681)','20200214','20200214','zz','0'
프로시저 호출은 이런식으로 하는데
'(2676,2677,2680,2681)' 이 부분이 문제입니다..
select dealerCode, storeCode, stockInDay from orders where dealerCode=@A_dealerCode and storeCode in (@A_storeCode) and stockInDay between @A_startDay and @A_endDay group by dealerCode,storeCode,stockInDay
여기서 @A_storeCode에 넣어서 select를 하려고하는데 잘 안되어서 질문드립니다.. in을 가로빼고하는방법은 없겠죠..
괄호는 REPLACE 를 이용해 제거할 수는 있지만 괄호만 뺀다고 해결되는게 아닙니다.
이전 질문글에서도 언급했지만. 인자값은 하나의 값입니다.
잘라서 사용하든가? 다른 형태로 사용하든가 해야 합니다.
- 현재구문 : AND storeCode IN (@A_storeCode)
- 원하는거 : AND storeCode IN (2676,2677,2680,2681) -- 4개의 숫자값
- 실제동작 : AND storeCode IN ('2676,2677,2680,2681') -- 하나의 긴 문자값
SELECT dealerCode , storeCode , stockInDay FROM orders WHERE dealerCode = @A_dealerCode AND storeCode IN (SELECT * FROM STRING_SPLIT(REPLACE(REPLACE(@A_storeCode, '(', ''), ')', ''), ',')) AND stockInDay BETWEEN @A_startDay AND @A_endDay GROUP BY dealerCode, storeCode, stockInDay ;