2013-03-19 2 views
1

월간 주식 판매를 기준으로 한 직원이 얻은 총 수수료 금액을 선택하려고합니다. , 나는 세 개의 테이블 (tbl_carForSale, tbl_Commision 및 tbl_employee)이 있습니다.계산 된 필드를 기반으로 한 모든 값의 합계

나는 종업원이 판매 한 모든 자동차의 총 가치를 얻을 수 있지만, 내가하고 싶은 것은 종업원이 얻었을 총 수수료 금액을 계산할 수 있다는 것이다 (변수 예를 들어 상품이 £ 1000 인 경우 수수료는 1 %입니다 (계산하는 것은 제품 테이블에서 제품 가격을 가져 와서 계산하는 것입니다. 최소값과 최대 값 사이에 있고 수수료를 반환하는 경우).

SELECT tbl_carForSale.name as 'employee Name', SUM(tbl_carForSale.carPrice) AS  
value of cars sold' 
INNER JOIN tbl_carForSale ON tbl_employee.employeeNo = tbl_carForSale.employeeNo 
WHERE tbl_carForSale.soldDate BETWEEN DATEADD("m", -1 ,Date()) AND Date() AND 
tbl_carForSale.bolSold = true 
GROUP BY tbl_employee.name 

** bolSold - 자동차가 '판매 됨'으로 표시되었는지 여부를 나타내는 true/false 필드입니다.

중첩 된 선택문을 사용해야하지만 실제로 자동차 가격뿐만 아니라 커미션을 합산 할 수있는 방법에 대해 알지 못합니다. 나는 두 개의 문으로 그것을 할 수 있다고 추측하고있다 -하지만 전혀 장해야 아니다 ..

편집 : 컴 테이블 :

ComNo minValue maxValue comAvliable 
0   0   5000   2 
1   5001  10000   3 
2   10001  15000   4 
3   15001 99999999   5 
+0

@ 사용자 ... 테이블에 차 값과 수수료 비율 매핑이 어떻게 표시됩니까? – MikeTWebb

+0

편집 : 위의 주요 질문에 추가됨 – KingJohnno

+0

@ 사용자 ... Com 테이블을 게시 해 주셔서 감사합니다. 또한이 대답이 도움이된다면 동의하는 것이 좋습니다. 도움이되는 대답을 더 많이 받아들이면 미래에 도움이되는 답변을받을 수있는 기회가 더욱 많아집니다 .... 건배 – MikeTWebb

답변

1

난 당신이 컴 테이블에 가입하고 얻을 수 있다고 생각하여 값. 조건부 조인을 사용하여 Com 테이블에 조인하면 원하는 comAvailable 비율이 반환됩니다. 그 다음 합계 * 자동차 가격 :

SELECT tbl_carForSale.name as 'employee Name', 
    SUM(tbl_carForSale.carPrice) AS 'value of cars sold' 
    SUM(tbl_carForSale.carPrice * tc.comAvailable) AS 'commission on cars sold' 
INNER JOIN tbl_carForSale ON 
    tbl_employee.employeeNo = tbl_carForSale.employeeNo 
INNER JOIN tbl_Com tc ON 
    tbl_carForSale.carPrice >= tc.minValue 
    and 
    tbl_carForSale.carPrice <= tc.maxValue  
WHERE tbl_carForSale.soldDate BETWEEN DATEADD("m", -1 ,Date()) AND Date() AND 
tbl_carForSale.bolSold = true 
GROUP BY tbl_employee.name 

주의해야 할 것은 Com 테이블의 데이터입니다. INNER JOIN tbl_Com tc가 carPrice/comAvailable 매핑에 대해 둘 이상의 행을 반환하면 오류가 발생합니다.

관련 문제