2013-01-09 2 views
0

나는 하나의 열에는 PEGA ID라는 값이 111, 222 등 및 0의 테이블을 가지고 있는데, 아래에있는 모든 qry를 필터링하면 어떻게 필터링 할 수 있습니까? 0도, 노동 조합을 사용할 수 있습니까?오라클 유니온 모든 값을 캡쳐

SELECT 
    ivr.dw_dealer_id, 
    ivr.dw_product_id, 
    ivr.dw_program_type_id, 
    ivr.dw_month_id, 
    TO_CHAR(ivr_update_dt, 'YYYYMM') buss_month, 
    count(*) 
FROM idm_ivr_interaction ivr, stgdba.interactions intr 
WHERE ivr.cti_rec_id = intr.pega_id 
+0

0 또는 * null *을 의미합니까? * cti_rec_id * 및 * pega_id * 열은 어떤 데이터 유형입니까? – Codo

+0

Btw 당신은 우리에게 테이블과 샘플 데이터를 보여줄 수 있습니까? 우리가 예상 한 결과도 줄 수 있다면 더 좋을 것입니다. 어쨌든'group by '없이 오라클에서 어떻게 집계 된 쿼리를 실행합니까? – bonCodigo

+0

나는 그룹을 가지고 있지만, 여기에 붙여 넣지 않았다. 혼란스러운 일로 유감스럽게 생각했다. – user1683763

답변

0

편집 : OP는 구체적으로는 0하지 널의 언급 이후, 우리는 case를 사용하는 쿼리를 변경합니다.

count(case when ivr.dw_dealer_id = 0 then 1 else ivr.dw_dealer_id end)

하거나 마지막 OR와 쿼리를 사용합니다. 아이디 주위 nvl 포장


SELECT 
     ivr.dw_dealer_id, 
     ivr.dw_product_id, 
     ivr.dw_program_type_id, 
     ivr.dw_month_id, 
     TO_CHAR(ivr_update_dt, 'YYYYMM') buss_month, 
     count(ivr.dw_dealer_id) as counts 
    FROM idm_ivr_interaction ivr, stgdba.interactions intr 
    WHERE ivr.cti_rec_id = intr.pega_id 
    AND (intr.pega_id IS NULL OR ivr.cti_rec_id IS NULL) 
...
SELECT 
    ivr.dw_dealer_id, 
    ivr.dw_product_id, 
    ivr.dw_program_type_id, 
    ivr.dw_month_id, 
    TO_CHAR(ivr_update_dt, 'YYYYMM') buss_month, 
    count(nvl(ivr.dw_dealer_id,1)) 
FROM idm_ivr_interaction ivr, stgdba.interactions intr 
WHERE ivr.cti_rec_id = intr.pega_id 
AND (intr.pega_id IS NULL OR ivr.cti_rec_id IS NULL) 
  • 이 BTW count 당신이 .......
  • 을 사용하는 ... Group By이 있어야한다
+0

pega의 값은 null이 아닙니다. 0 – user1683763

+0

그렇다면 우리는'CASE'를 사용합니다. 위의 편집 된 쿼리를 시도해보고 주석을 달 수 있습니까? :) – bonCodigo

+0

나는 countr.vw_dealer_id = 0, 그 다음에 1 else ivr.dw_dealer_id)를 카운트로 사용하지 않고있다. ivr.dw_dealer_id가 0 일 때, 우리는 돈을 내지 않는다. 상호 작용 테이블에서 intr.pega_id = 0을 (를) 가지고 있습니다. – user1683763