질문 추가---
SELECT lotnoa fron stockhistory where lotnoa ='aa' 하면 결과값이 3개 2,3,4,가 잘 됩니다.
하지만 SP를 이용하여
set @ter=( SELECT lotnoa fron stockhistory where lotnoa ='aa' )
select @ter as[불량 랏]
이렇게 set을 사용하면 1개 이상의 리턴값 에러라고 나옵니다.
저는 쿼리문을 이용했을 때 와 같이 2,3,4 같이 3개의 결과값이 출력 되기를 원함니다
어떻게 해야 하나요? 꾸벅 ㅡㅡ;;
======왜 값이 안나오는거죠??
어휴 너무 어렵네요.. 고수님들 꾸벅..
BEGIN
CREATE TABLE #Edabang -- 모음테이블
(
LotNoA VARCHAR(50)
)
DECLARE @pBsLot VARCHAR(50)
DECLARE @pLOT VARCHAR(50)
DECLARE @pLotNoa VARCHAR(50)
DECLARE @CNT1 INT
DECLARE @CNT2 INT
DECLARE @LotNoa VARCHAR(50)
SET @CNT1 = 1;
SET @CNT2 = (SELECT count(*) FROM dbo.tMesStockHistory WHERE PatnID='BSENS' AND ByCompany='⊙프린팅및분주(BS)[S]'
AND PGDSID='BK784-0001-02' AND LotNoB=@LotNoa)
WHILE @CNT1 = @CNT2
BEGIN
SET @pLotNoa =(SELECT lotnob FROM dbo.tMesStockHistory WHERE PatnID='BSENS' AND ByCompany='⊙프린팅및분주(BS)[S]'
AND PGDSID='BK784-0001-02' AND LotNoB=@LotNoa)
INSERT INTO #Edabang (LotNoA) VALUES(@pLotNoa)
SET @CNT1 = @CNT1 + 1;
END
SET @pLOT =(SELECT LotNoA FROM #Edabang)
--SELECT LotNoA FROM #Edabang
----------표기 방법-------
SELECT @pLOT AS[BS 랏]
END
Comment 2
-
건우아빠
2013.03.20 12:07
-
건우아빠
2013.03.20 14:41
정확히 뭘 하시려는지를 아는게 중요합니다.
set @ter=( SELECT lotnoa fron stockhistory where lotnoa ='aa' ) 로 할때는 값이 하나만 리턴이 되어야 합니다.
이때 값이 변수에 한개씩 배열 개념인진 , 2,3,4 이렇게 한꺼번에 한값으로 들어가야 하는지에 따라 방식이 달라집니다.
일단 배열은 안되기 때문에 변수보다는 임시테이블 테이블 변수로 값을 넣어 주셔야 할듯 합니다.
저 내용이 단순히 에러만 해결 된다고 처리 되지는 않을듯 합니다.
각테이블으 내용과 프로시저의 목적등을 같이 이야기 하시는게 좋을듯 합니다 .
중간 중간에 변수들의 값을 보여주기 위한
print '@CNT1 =>' + cast(@CNT1 as varchar) 또는 select @CNT1 , @CNT2
으로 넣어서 값의 변경을 보세요... 디버깅
그러면 왜 안나오는지의 원인을 찾으실수 있을듯 합니다.