2012-11-20 3 views
1

식이 유효하지 않은 식별자라는 메시지가 나타납니다. 또한 단일 그룹을 기준으로 유효하지 않다는 메시지가 나타납니다. 친절하게 대안을 제안하십시오.월별로 그룹화 된 백분율 백분율에 대한 SQL 쿼리

나는 다음과 같은 오라클 SQL 문이 :

SELECT SUM(CASE 
      WHEN PDRVARIANCE >= -1 then '1' 
      WHEN PDRVARIANCE <-1 then '0' 
      END) 
     /count(*) 
     * 100 as PercentCompliance , 
     TO_CHAR (ACTUALFINISHDATE,'MM/YY') AS DCSMONTH 
    FROM ACTIVITIES 
WHERE DCSMONTH IS NOT NULL 
GROUP BY DCSMONTH 

Variance  Month 
    20  10/12 
    3.2  10/12 
    -4.2  10/12 
    -27.8 10/12 
    13  11/12 
    3  11/12 
    -1.2  12/12 
    -2  12/12 

원하는 결과가 거짓 "대"진실 "의 비율을하는 것입니다 ... 데이터는이 같은 것 기존 "월별로 각각의 분산 상태 및 그룹과

Percent Month 
    50 10/12 
    100 11/12 
    0  12/12 

답변

0

당신은 캘리포니아 ... 그것을로 표시 정의 된 동일한 범위에서 열 별명을 사용하지 마십시오.

GROUP BY DSCMONTHGROUP BY TO_CHAR (ACTUALFINISHDATE,'MM/YY')으로 바꾸고 where-clause과 동일한 작업을 수행하거나 다른 쿼리에서 쿼리를 래핑해야합니다.

처럼,

select dcsmonth, sum(data)/count(*) * 100 percentcompliance 
    from (
SELECT CASE WHEN PDRVARIANCE >= -1 then 1 
      WHEN PDRVARIANCE <-1 then 0 END data, 
     TO_CHAR (ACTUALFINISHDATE,'MM/YY') AS DCSMONTH 
    FROM ACTIVITIES 
WHERE ACTUALFINISHDATE IS NOT NULL 
) 
GROUP BY DCSMONTH 
+0

YYYAAAAAAAYYYYYYYYY !!!!!!! 그래서 나는 내가 초보자는 아니지만 SQL 스크립팅에서 정규인이 아니라는 것을 인정해야한다. 이것은 DUH이었다! 순간. 정말 고마워, 멋진 휴가 보내. –