CREATE TABLE #ordernonm
(
orderno VARCHAR(20),
ordernm VARCHAR(150)
)
INSERT INTO #ordernonm
SELECT DISTINCT orderno,
(SELECT prodspec
FROM order_sheet_anierp
WHERE Rtrim(Ltrim(orderno)) = Rtrim(Ltrim(a.orderno))) AS
orderNm
FROM put_sheet_anierp a
WHERE putdate >= '20220101'
AND putdate <= '20221231'
UNION ALL
SELECT orderno,
product
FROM yp2015new
WHERE yyyy = '2022'
CREATE TABLE #seq
(
idx INT,
orderno VARCHAR(150)
)
INSERT INTO #seq
SELECT DISTINCT Row_number()
OVER(
ORDER BY orderno),
orderno
FROM #ordernonm
GROUP BY orderno
------------------------------------------------------------------------------------------------
CREATE TABLE #main
(
orderno VARCHAR(20),
code VARCHAR(20),
item VARCHAR(200),
subitem VARCHAR(200),
cqty FLOAT,
cprice FLOAT,
camt FLOAT,
yyyy VARCHAR(10)
)
DECLARE @cnt INT,
@i INT
SET @cnt = (SELECT Count(idx)
FROM #seq)
SET @i = 1
WHILE ( @i <= @cnt )
BEGIN
DECLARE @Idx INT,
@OrderNo VARCHAR(20)
--exec ORDER_STOCK_AMT_S_JO '20220101', '20221231', '17A527'
SELECT @OrderNo = Orderno
FROM #seq
WHERE idx = @i
Insert Into #Main
exec dbo.ORDER_STOCK_AMT_S_JO '20220101', '20221231', @OrderNo
SET @i = @i + 1
END
SELECT * FROM #main
DROP TABLE #ordernonm
DROP TABLE #seq
DROP TABLE #main
이렇게 오류가 발생합니다. 해결 방법이 없을까요?
결과에서 항목은 모두 출력되는데 값이 일부 NULL 로 표시됩니다.
17A527 M-060 A B 1 NULL NULL 2022
17A527 M-4375 C D 1 NULL NULL 2022
17A527 M-5542 E F 1 NULL NULL 2022
이걸 개별로 출력해 보면 이렇게 값이 나와요
17A527 M-060 A B 1 10603439 10603439 2022
17A527 M-4375 C D 1 36890.913 36890.913 2022
17A527 M-5542 E F 1 243384.7712 243384.7712 2022
(194개 행이 영향을 받음)
(179개 행이 영향을 받음)
메시지 8164, 수준 16, 상태 1, 프로시저 dbo.ORDER_STOCK_AMT_S_JO, 줄 53 [배치 시작 줄 0]
INSERT EXEC 문은 중첩될 수 없습니다.
(79개 행이 영향을 받음)
메시지 8164, 수준 16, 상태 1, 프로시저 dbo.ORDER_STOCK_AMT_S_JO, 줄 53 [배치 시작 줄 0]
INSERT EXEC 문은 중첩될 수 없습니다.
(1개 행 적용됨)
메시지 8164, 수준 16, 상태 1, 프로시저 dbo.ORDER_STOCK_AMT_S_JO, 줄 53 [배치 시작 줄 0]
INSERT EXEC 문은 중첩될 수 없습니다.
(457개 행이 영향을 받음)
메시지 8164, 수준 16, 상태 1, 프로시저 dbo.ORDER_STOCK_AMT_S_JO, 줄 53 [배치 시작 줄 0]
INSERT EXEC 문은 중첩될 수 없습니다.
..... n
EXEC ORDER_STOCK_AMT_S_JO 프로시저 안에 또다른 프로시저가 있어 수정했어요
이제 정상적으로 내용이 출력됩니다.
이렇게 나온 결과가 아래 테이블과 같습니다. 약 2만5천개 정도 출력 되는데
Orderno | Code | Item | SubItem | cQty | cPrice | cAmt | Yyyy |
17A527 | M-010 | 46-549 | ORDER 355NM | 1 | 473111 | 473111 | 2017 |
17A527 | M-1037 | ss-YT10 | sd-52 | 1 | 13000000 | 13000000 | 2017 |
17A527 | M-109 | 202-A-H-750 | FORCER | 1 | 603564 | 603564 | 2017 |
17A527 | M-1217 | CT-4500-66 | CABLE | 1 | 37647 | 37647 | 2017 |
19A119 | M-13685 | LASER | 355-20 NL | 1 | 26191801 | 26191801 | 2022 |
19D001 | M-10180 | SO_14 | A6061 | 1 | 40000 | 40000 | 2019 |
19D001 | M-10181 | Z-AXIS | A6061 | 1 | 39000 | 39000 | 2019 |
이렇게 출력된 부분은 아래 표와 같이 출력하고 싶어요
Code | Item | SubItem | cQty | cPrice | cAmt | Yyyy |
17A527 | 14114322 | |||||
M-010 | 46-549 | ORDER 355NM | 1 | 473111 | 473111 | 2017 |
M-1037 | ss-YT10 | sd-52 | 1 | 13000000 | 13000000 | 2017 |
M-109 | 202-A-H-750 | FORCER | 1 | 603564 | 603564 | 2017 |
M-1217 | CT-4500-66 | CABLE | 1 | 37647 | 37647 | 2017 |
19A119 | 26191801 | |||||
M-13685 | LASER | 355-20 NL | 1 | 26191801 | 26191801 | 2022 |
19D001 | 79000 | |||||
M-10180 | SO_14 | A6061 | 1 | 40000 | 40000 | 2019 |
M-10181 | Z-AXIS | A6061 | 1 | 39000 | 39000 | 2019 |