2016-08-11 3 views
2

누군가가 나를 도울 수있는 하위 쿼리에 문제가 있습니다.SQL 하위 쿼리가 1보다 큰 값

나는 다음과 같은 실행하는 경우 :

select t4.code from OITM T0 
INNER JOIN DLN1 T1 ON T1.[ItemCode] = T0.[ItemCode] 
INNER JOIN ODLN T2 ON T2.[DocEntry] = T1.[DocEntry] 
INNER JOIN ITM10 T3 ON T3.[ItemCode] = T0.[ItemCode] 
LEFT JOIN ODCI T4 ON T4.[AbsEntry] = T3.[ISCommCode] 
WHERE T2.DocEntry = '7060' 

결과는 다음과 같습니다

어떤 경우에는 여러 값이 그 원하는 일치하는 행과에서하지 않는 사람이있을 수 있지만 같은 시간. 이 컴파일되지 않습니다 분명히

IF(
(SELECT 
    T4.Code 
FROM OITM T0 
INNER JOIN DLN1 T1 ON T1.[ItemCode] = T0.[ItemCode] 
INNER JOIN ODLN T2 ON T2.[DocEntry] = T1.[DocEntry] 
INNER JOIN ITM10 T3 ON T3.[ItemCode] = T0.[ItemCode] 
LEFT JOIN ODCI T4 ON T4.[AbsEntry] = T3.[ISCommCode] 
WHERE T2.DocEntry = '7060') NOT IN ('22030010','22030001','22030009') 
) 
BEGIN 
SELECT 'MESSAGE' 
END 

: 내가 어떤 행의 [코드] 열은 특정 일을 포함하지 않는 경우 이러한 결과에 대해 확인 메시지를 표시하는 하위 쿼리가있는 쿼리를 작성했습니다

Subquery returned more than 1 value. This is not permitted when the subquery follows =, !=, <, <= , >, >= or when the subquery is used as an expression. 

HAVING 그들은 분명히 잘못된 메시지를 표시하지 않고 컴파일로 COUNT가 작동하지 않습니다 : 그것은 1 개 이상의 행을 반환하는 경우.

이것이 가능합니까 아니면 잘못된 트리를 짖고 있습니까?

감사합니다. 같은 라인이 있는지 확인을 위해

+1

어떻게 바로 쿼리에'where' 절을 추가하는 방법에 대한? –

답변

1

, 당신은 EXISTS를 사용할 수 있습니다

IF EXISTS (SELECT ...) 

를 귀하의 경우에는 내가 선택 distinct을 만들 것 번만 특정 값을 반환 :

select DISTINCT t4.code from OITM T0 ... 

UPDATE를

@gordon-linoff으로 지적하면, 이 같은 전자 원하지 않는 값 :

select distinct t4.code from OITM T0 
... 
where T2.DocEntry = '7060' and t4.code not in ('22030010','22030001','22030009') 
-- using AND instead of): ^^^ 
-- so one (will be enough between EXISTS and SELECT 

가 함께 퍼팅 :

IF EXISTS(SELECT .... where T2.DocEntry = '7060' and t4.code not in ('22030010','22030001','22030009')) 
BEGIN 
    ... 
END 
+0

지금까지 도와 줘서 고마워. EXISTS를 따르는 문법으로 나를 도울 수 있습니까? IF EXISTS (...)를 사용할 때 NOT IN 구문 오류가 발생합니다. – coblenski

+1

아, 어쩌면 이것이 @ gordon-linoff가 의미 한 것일 수도 있습니다. 'T4.Code ... WHERE T2.DocEntry = '7060'AND T4.code NOT IN ('22030010', '22030001', '22030009')'서브 쿼리를 올바르게 실행하는 방법입니다. 게시물에 업데이트 추가하기. –

+0

나는 이것이 작동한다고 생각하지 않는다. 컴파일하지만 메시지를 표시하지 않습니다. – coblenski

관련 문제