2013-11-04 3 views
-1

아래 쿼리는 데이터베이스에서 레코드를 검색하여 보고서에 표시하는 데 사용됩니다. 그러나 SENOKO 및 EUNOS 열은 중복 행을 모든 행에 표시합니다. 이것은 하위 쿼리가 기본 쿼리에 연결되어 있지 않은 것처럼 보입니다 필터링이 수행되지 않습니다.하위 쿼리가 주 쿼리에 연결되지 않았습니다.

SELECT whbal.customer, customer.imp_license_no, customer.psq_level, 
     (SELECT SUM(CONVERT(DECIMAL(8,3),(CONVERT(DECIMAL(8, 3), whbal.qty_good) + CONVERT(DECIMAL(8, 3), whbal.qty_slack)) * CONVERT(DECIMAL(8, 3), whbal.std_weight)/1000)) 
     FROM whbal WHERE warehouse='SKW') AS SENOKO 
     (SELECT SUM(CONVERT(DECIMAL(8,3),(CONVERT(DECIMAL(8, 3), whbal.qty_good) + CONVERT(DECIMAL(8, 3), whbal.qty_slack)) * CONVERT(DECIMAL(8, 3), whbal.std_weight)/1000)) 
     FROM whbal WHERE warehouse='EKW') AS EUNOS 
FROM customer 
INNER JOIN whbal ON whbal.customer=customer.customer AND whbal.date_create<[email protected]     
INNER JOIN stktype ON whbal.stock_type=stktype.stock_type 
WHERE whbal.customer BETWEEN @cust1 AND @cust2 AND [email protected] 
GROUP BY whbal.customer, customer.customer, customer.imp_license_no, customer.psq_level 

결과 :

사람이 코멘트와 가이드하시기 바랍니다 문제 및 솔루션이 무엇인지 알고있다. 감사 드리며 미리 감사드립니다.

+0

또는 양자 택일로, 데이터가 모두'웨어 하우스 같은 결과를를 = 'SKW''와'창고 ='EKW ''. 작은 데이터 샘플을 제공하고 결과를 보여 주면 '창고'를 포함하여 모든 열에 테이블 별칭을 사용하는 것과 마찬가지로 도움이됩니다. –

+0

@GordonLinoff 제 수정 된 질문을 참조하십시오. EUNOS 열은 SENOKO 열 옆의 가장 오른쪽에 있습니다. 감사합니다 – user2901955

+0

당신은 당신의 메인 쿼리에서 아무 것도 부질의를 연결하지 않았습니다 ... 왜 어떤 연결이 있어야합니까? whbal.customer = customer.customer WHERE 창고 = 'SKW'AND @ cust1과 @의 cust2) 간의 whbal.customer SENOKO AS – DarkSquirrel42

답변

1

아, 문제가 간단합니다. 쿼리는 단순히 외부 쿼리와 상관 관계가 없으므로 whbal 테이블 전체에 (아마도 EUNO)의 합계가 표시됩니다.

귀하의 질문을 읽고, 나는 이것이 당신이 원하는 것이라고 생각했습니다.

외부 테이블 중 하나의 일부 열에 whbal의 행을 연결하는 하위 쿼리에 상관 관계 절이 필요하다고 생각합니다. 당신이 정말로 원하는 것을 알지 못하거나 데이터 구조를 알지 못한다면, 나는 특정한 조건을 제안 할 수 없다.

편집 :

연결하는 올바른 방법들을 다음과 같습니다

(SELECT SUM(CONVERT(DECIMAL(8,3),(CONVERT(DECIMAL(8, 3), whbal.qty_good) + CONVERT(DECIMAL(8, 3), whbal.qty_slack)) * CONVERT(DECIMAL(8, 3), whbal.std_weight)/1000)) 
    FROM whbal 
    WHERE warehouse = 'SKW' and whbal.customer = customer.customer 
    ) AS SENOKO 
+0

ON whbal INNER 가입 고객으로부터 : – user2901955

관련 문제