2013-08-18 1 views
-1
SELECT DISTINCT CSSC_MASTER_VIEW."Created_by", 
       SUM (CSSC_MASTER_VIEW.NO_OF_LINES_PROCESSED), 
       CSSC_MASTER_VIEW.TYCO_CALENDAR_MONTH_NM, 
       CSSC_MASTER_VIEW.TYCO_CALENDAR_YEAR_ID, 
       CSSC_MASTER_VIEW."Source_ID" 
    FROM CCO.CSSC_MASTER_VIEW CSSC_MASTER_VIEW 
WHERE  (CSSC_MASTER_VIEW."Created_by" = 'TE160961') 
     AND (CSSC_MASTER_VIEW.TYCO_CALENDAR_MONTH_NM = 'JULY') 
     AND (CSSC_MASTER_VIEW.TYCO_CALENDAR_YEAR_ID = 2013) 
     AND (CSSC_MASTER_VIEW."Source_ID" = '10') 
GROUP BY CSSC_MASTER_VIEW."Created_by", 
     CSSC_MASTER_VIEW.NO_OF_LINES_PROCESSED, 
     CSSC_MASTER_VIEW.TYCO_CALENDAR_MONTH_NM, 
     CSSC_MASTER_VIEW.TYCO_CALENDAR_YEAR_ID, 
     CSSC_MASTER_VIEW."Source_ID" 

이 쿼리는 NO_OF_LINES_PROCESSED가 199라는 결과를 반환합니다. 다른 문으로이 문을 결합하려고하면 여기에 문제가 발생합니다.두 개의 DISTINCT 문을 사용하는 SQL

필드 "Created_by"및 기타 필드가있는 다른 테이블 CSSC_QUALITY_DATA가 있습니다. 이 필드와 CSSC_MASTER_VIEW. "Created_by"사이에 조인을 만들면 NO_OF_LINES_PROCESSED 반환 값이 199의 첫 번째 결과와 일치하지 않습니다.

여기에 그 이유가 있습니다. 두 번째 테이블에는 여러 개의 "Created_by"필드가 있습니다.

JOIN CSSC_QUALITY_DATA ON CSSC_MASTER_VIEW."Created_by" = CSSC_QUALITY_DATA."Created_by" 

마지막으로 당신이 구별 될 필요가있는 별개 넣어 모든 것을 피하기 위해 : 어떻게이 두 테이블 간의 관계를 설정할 수 있습니다

+0

질문을 수정하고 다시 붙여 넣은 다음 마우스를 사용하여 쿼리의 텍스트를 선택하고 편집기 창 상단의 '코드 샘플 {}'아이콘을 클릭하여 쿼리를 읽을 수있게하십시오. – krokodilko

+0

정보 kordirko 주셔서 감사합니다. 나는 그것을했다. – santhosha

답변

1

당신 만의 가입에 ON 절 같은 것을 필요하다고 생각 GROUP BY 절 :

GROUP BY CSSC_MASTER_VIEW."Created_by", 
     CSSC_QUALITY_DATA."Created_by", 

이런 식으로 당신은 별개의 사용을 피하고 그룹 BY와 같은 원하는 결과를 얻을 수 있습니다.

+0

감사합니다. 사실 나는 SQL에 그렇게 좋지 않다. 이 진술을 시도했지만 성공하지 못했습니다. 나는 학습 단계에 있습니다. 괜찮 으면 여기에 전체 문장을 붙여 넣을 수 있습니까? – santhosha

+0

"Created_by"필드를 내 예제와 같이 추가하여 절을 변경하고 선택 영역 근처의 distinct 절을 제거하십시오. – aleroot

+0

그것은 저에게 효과적입니다. 여기서 마지막으로 한 질문은 CSSC_QUALITY_DATA 테이블의 모든 레코드가 필요합니다. 여기에 바로 가입 할 수 있습니까? 간단한 JOIN 대신에. – santhosha

관련 문제