2014-02-07 4 views
1

내 검색어에 문제가 있습니다. 아무리 노력해도 백분율을 얻을 수는 없습니다. 도와주세요. 매주 POS 및 NON-POS의 작성 및 마감 시간을 개별 쿼리로 얻어야합니다. 나는 항상 오류가 발생했습니다. 감사!오라클에서 백분율을 얻는 방법은 무엇입니까?

검색어 :

SELECT 'Data' 
||','||COUNT(CASE WHEN UPPER(TICKET_CUSTOMER_USER_ID) = UPPER('POS-generic') THEN 1 ELSE  NULL END) --POS 
FROM APP_ACCOUNT.OTRS_TICKET 
WHERE TRUNC(CREATE_TIME, 'IW') BETWEEN SYSDATE -119 AND SYSDATE -1 
AND trunc(CLOSE_TIME, 'IW') BETWEEN SYSDATE -119 AND SYSDATE -1; 

비 POS

SELECT 'Data' 
||','||COUNT(CASE WHEN UPPER(TICKET_CUSTOMER_USER_ID) = UPPER('hcphuser') THEN 1 ELSE NULL END) --NON_POS 
FROM APP_ACCOUNT.OTRS_TICKET 
WHERE TRUNC(CREATE_TIME, 'IW') BETWEEN SYSDATE -119 AND SYSDATE -1 
AND trunc(CLOSE_TIME, 'IW') BETWEEN SYSDATE -119 AND SYSDATE -1; 

데이터베이스의 일부 출력의 경우 :

Name       ticket_customer_id create_time close_time 
-------------------------------------------------------------------------- 
Cannot access the Zimbra Email POS-generic  10/15/2013 10/15/2013 
Slow WIFI Connection   POS-generic  10/15/2013 10/16/2013 
Change phone number   hcphuser   10/17/2013 10/18/2013 

출력 샘플 필요 : POS를 들어

01 대한 POS

Data, 10/10/2013, 50, 60% 
Data, 10/17/2013, 30, 40% 

에 대한 23,516,

비 POS

Data, 10/10/2013, 70, 60% 
Data, 10/17/2013, 50, 40% 
+1

사실을보십시오 내부 선택이 필요하다고 생각 위대한,하지만 당신은 그 입력을 제공하는 것을 잊었습니다 - 당신은 그 출력을 내고자하는 입력으로부터 무엇입니까? 원본 데이터의 샘플은 유용 할 것입니다. –

+0

죄송합니다. 지금 내 질문의 내용을 업데이트하십시오. – user3172075

+0

계산 백분율에는 일종의 구분이 포함되어야하며 쿼리에는 나누기 연산자가 포함되지 않아야합니다. – mustaccio

답변

1

나는 당신이 ... 당신이 원하는 출력이 제공 한 것을이

SELECT 'Data', POS, NON_POS, ROUND((POS*100/(NON_POS + POS)),2) NON_POS_PERCENTAGE, 100 - ROUND((POS*100/(NON_POS + POS)),2) POS_PERCENTAGE 
    FROM (
     SELECT 70 POS, 
       30 NON_POS 
     FROM DUAL 
     ) 

     SELECT 'Data', POS, NON_POS, ROUND((POS*100/(NON_POS + POS)),2) NON_POS_PERCENTAGE, 100 - ROUND((POS*100/(NON_POS + POS)),2) POS_PERCENTAGE 
     FROM (
      SELECT COUNT(CASE WHEN UPPER(TICKET_CUSTOMER_USER_ID) = UPPER('POS-generic') THEN 1 ELSE  NULL END) POS, 
        COUNT(CASE WHEN UPPER(TICKET_CUSTOMER_USER_ID) = UPPER('hcphuser') THEN 1 ELSE NULL END) NON_POS 
      FROM APP_ACCOUNT.OTRS_TICKET 
      WHERE TRUNC(CREATE_TIME, 'IW') BETWEEN SYSDATE -119 AND SYSDATE -1 
      AND trunc(CLOSE_TIME, 'IW') BETWEEN SYSDATE -119 AND SYSDATE -1 
      ) 
+0

오류가 있습니다 : FROM 키워드를 찾을 수 없습니다. 예상되는 곳에 – user3172075

+0

쉼표가 없습니다. 다시 확인할 수 있습니까? – Calipso

+0

작동하지만 잘못된 출력입니다. 내가 필요한 출력은 주간 결과이며 날짜는 표시되지만 쿼리의 표시 결과는 총합입니다. – user3172075

관련 문제