2013-01-31 3 views
0

내 경험 부족으로이 질문 방법을 모르므로 나와 함께하시기 바랍니다.SELECT 문 출력에 존재하지 않는 값 추가

SELECT 문을 사용하여 대기중인 응용 프로그램 (완료 날짜 없음) 및 count 총계 (일부 다른 계산 포함)를 추출합니다. 내가 수집해야하는 프로젝트 유형이 8 개 있는데, 그중 8 개는 현재 4 개만 현재 보류중인 애플리케이션입니다. count 열에 0이있는 다른 프로젝트 유형을 표시해야합니다. 보류 중 또는 아닌 모든 데이터를 가져 오는 쿼리와 결합하려고하면 현재 대기중인 응용 프로그램이있는 4 개의 프로젝트 유형에 대해 중복 행 (개수 열 빼기)이 표시됩니다. 프로젝트 유형 테이블에 조인을 남긴 경우 null 행이 생깁니다. 나도 내가 원하는 것은 아니다. 누구든지 어떤 제안이 있습니까? 노조의

출력 : 내가보고 싶은

General Coverage   1 740  90 90 
Individual Renewal   2 1027 90 180 
Other - Renewal   21 1119 90 1890 
Approval     22 566  90 1980 

출력은 다음과 같습니다 :

General Construction  0 0 90 0 
    General Coverage   1 740 90 90 
    General Renewal    0 0 90 0 
    Individual Construction  0 0 90 0 
    Individual Coverage   0 0 180 0 
    Individual Renewal   2 1027 90 180 
    Approval     22 565 90 1980 
    Other - Renewal    21 1119 90 1890  

주시기 바랍니다 필요한없이 '0'행

General Construction  0 0  90 0 
General Coverage   0 0  90 0 
General Coverage   1 740  90 90 
General Renewal   0 0  90 0 
Individual Construction 0 0  90 0 
Individual Coverage  0 0  180 0 
Individual Renewal   0 0  90 0 
Individual Renewal   2 1027 90 180 
Approval     0 0  90 0 
Approval     22 565  90 1980 
Other - Renewal   0 0  90 0 
Other - Renewal   21 1119 90 1890 

출력 당신이 나를 도울 수 있도록 내가 무엇을 제공 할 수 있는지 알 수 있습니다.

+1

원하는 출력은 무엇입니까? 샘플 테이블/데이터를 추가하는 것도 좋습니다. – Art

답변

0

당신은 당신의 칼럼이나 그와 비슷한 이름을 제공하지 않습니다.

필요한 값은 모두 유효한 드라이버 테이블입니다. NULL을 대신 0의 괜찮아 경우

select driver.val, coalesce(q.col2, 0), coalesce(q.col3, 0), coalesce(q.col4, 0) 
from (select 'General Construction' as val from dual union all 
     select 'General Coverage' as val from dual union all 
     select 'General Renewal' as val from dual union all 
     select 'Individual Construction' as val from dual union all 
     select 'Individual Coverage' as val from dual union all 
     select 'Individual Renewal' as val from dual union all 
     select 'Approval' as val from dual union all 
     select 'Other - Renewal' as val from dual 
    ) driver left outer join 
    (query without 0 rows) q 
    on driver.val = q.col1 

은 다음 coalesce()가 필요하지 않은 : 당신은 당신이 원하는 결과 집합을 얻을 수 left outer join를 사용할 수 있습니다.

+0

당신은, @ 고든 Linoff 바위! 그것은 내가 필요로했던 바로 그 것이었다. 나는 너무 애매했다. 내가 사용하는 많은 데이터는 독점적이며 가능하다면 실제 데이터 나 열 이름을 사용하지 않고 도망갑니다. 다시 한 번 감사드립니다! – user1983682