2017-05-10 4 views
0

쿼리 다음 (가의 일부)를 사용하여, 나는 다음과 같은 결과를 얻고있다 :오라클 SQL은 : 카운트 null 값을 포함

Person Category Count 
Person1 Category1 4 
Person1 Category2 0 
Person1 Category3 5 
Person1 Category4 7 
Person2 Category1 8 
Person2 Category2 2 
Person2 Category3 1 
Person2 Category4 3 
Person3 Category1 0 
Person3 Category2 9 
Person3 Category3 0 
Person3 Category4 3 
:

SELECT TLC, DUTYTYPE, SUM(SUM1) FROM 
**Result** 

Person1 Category1 4 
Person1 Category3 5 
Person1 Category4 7 
Person2 Category1 8 
Person2 Category2 2 
Person2 Category3 1 
Person2 Category4 3 
Person3 Category2 9 
Person3 Category4 3 

나는 그것을 같이 할을

따라서 합계/계산 결과가 NULL이면 여전히 포함됩니다. 그렇게 할 수 있습니까?

+1

여기서 생략 한 검색어에 'GROUP BY'가 있습니까? 누락 된 데이터가 원본 테이블에 나타나지 않으면 구멍을 채우기 위해 캘린더 테이블 (또는 아날로그)을 사용해야합니다. –

+2

전체 인물 및 카테고리 목록은 어디 있습니까? 당신은 계산할 데이터가 없다면 계산할 테이블이 포함 된 테이블에 외부 조인을 시작해야합니다. 우리가 고객과 판매 테이블을 가지고있는 것처럼. 우리는 고객이 판매 테이블에있는 모든 매출을 계산할 수 있지만 매출이없는 고객은 나타나지 않을 것입니다. 고객과 합류해야하고 0이 표시됩니다. – xQbert

+0

전체 쿼리 (단순화 된 경우에도)가 더 좋은 예입니다. 그러나 SUM에 대해 수행하는 행이있는 테이블간에 OUTER JOIN을 수행하려는 것처럼 들립니다. – BriteSponge

답변

0

NVL을 추가하여 Null 값을 가져 오십시오. 이것이 당신이 원하는 것이라면.

SELECT TLC, DUTYTYPE, NVL(SUM(SUM1), 0) FROM 
**Result** 

OUTER JOIN이 필요할 수 있습니다. 가능한 NOT NULL 속성을 고려하십시오. 전체 코드를 가지고 있습니까?