2012-08-15 3 views
0

좋은 아침, 크로스 탭 쿼리에서 계산 된 두 열의 백분율을 계산할 수 있습니까? 내 자르기 쿼리는 아래에 있습니까? 컴즈 열은 날짜 만의 경우를 계산하면서Mysql 크로스 탭 쿼리 백분율에?

Select 
    a.ContactFullName As Adviser, 
    Sum(Month(b.CaseDate) = 1) As Jan, 
    Sum(Month(b.CaseDate) = 2) As Feb, 
    Sum(Month(b.CaseDate) = 3) As Mar, 
    Count(b.CaseID) As Total, 
    Count(b.StatusSubmittedDate) As Comms 

From 
    tblcontacts a Inner Join 
    tblcases b On a.ContactID = b.ContactAssignedTo 
Group By 
    a.ContactFullName With Rollup 

이 것은 열이 매달 사건을 표시하는 것과 같이 달을 출력하고, 총 열은 행을 계산합니다. 내가하고 싶은 것은 Total/Comms의 백분율을 계산하는 것입니다.

Total | Comms | %_Share 
100 | 50 | 50% 
346 | 53 | 15% 
278 | 89 | 32% 

나는 잘못된 길을 찾고 있는데, 달성하기 위해 여러 개의 쿼리를 작성해야합니까?

답변

1

단순히 다른 열을 선택 찾고에 대한

감사합니다 : 당신은 텍스트에 쓴 컴즈/총, 방법이 당신의 예상 출력/총되지 컴즈을 나타냅니다 *

Select …, 
    100*Count(b.StatusSubmittedDate)/Count(b.CaseID) As `%_Share` 
From … 

이 100입니다.

다른 계산 된 열의 값을 계산하기 위해 하나의 계산 된 열을 직접 재사용하는 것은 불가능합니다. 그러나 Count을 반복적으로 평가할 때 발생하는 오버 헤드가 너무 심하지 않아야하며, MySQL은 이러한 일반적인 용어를 감지하여 한 번만 계산할 수도 있습니다.

+0

브릴리언트, 내가 필요한 것은 시간 내 주셔서 대단히 감사합니다. – gary

+1

언제든지 @gary. – MvG