2016-10-18 6 views
-1
SET @IdInternalSelection = (
    SELECT iss.IdInternalSelection 
    FROM HesSelection.InternalSelection iss 
    INNER JOIN HesSelection.ExtractedLabInternalSelection2CatPatientActivity cpa 
     ON iss.IdInternalSelection = cpa.IdInternalSelection    
    WHERE cpa.IdCatPatientActivity = @IdCatPatientActivity) 

다른 쿼리에서 IdCatPatientActivity의 출력이 나옵니다.하위 쿼리가 1 개 이상의 값을 반환했습니다.이 문제를 해결하고 여러 ID를 얻으려면

IdCatPatientActivity을 기준으로 IdCatPatientActivity 개의 ID에 대해 실패한 IdInternalSelection을 설정해야합니다.

는 IdCatPatientActivity 여러 IdInternalSelection와 연결되어 어떤 경우이기 때문이다

난 다음 IdCatPatientActivity 및 루프 각 IdInternalSelection과 관련된 모든 IdInternalSelection를 얻고 다른 테이블에 삽입하는 것입니다 무엇이 필요

.

여러 IdInternalSelection ID가 표시되지 않습니다. 좀 도와 주실 수 있습니까?

+0

대부분의 경우 잘못된 방식으로 생각하고 있습니다. 시간 접근 방식에서 이러한 종류의 단계별/반복 항목을 코딩하면 안됩니다. SQL Server는 집합 기반 방식으로 훨씬 잘 작동합니다. –

+0

이후 나는 커서가 거의 같은 익숙하지 않았다 :). 덕분에 귀하의 입력 : –

답변

0

변수가 TABLE 유형이어야합니다.

declare @IdInternalSelection table 
(
    Id varchar(1000) 
) 

insert into @IdInternalSelection 
SELECT iss.IdInternalSelection 
          FROM HesSelection.InternalSelection iss 
          INNER JOIN HesSelection.ExtractedLabInternalSelection2CatPatientActivity cpa ON iss.IdInternalSelection = cpa.IdInternalSelection     
          WHERE cpa.IdCatPatientActivity = @IdCatPatientActivity 
+0

고마워요 @ Vicky_Thinking. 그게 내 문제를 해결 :) –