[英]Sum of all values, based on a calculated field
我正在嘗試根據每月的股票銷售來選擇單個員工賺取的佣金總額。 ,我有三個表(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字段,指示汽車是否已被標記為“已出售”。
我知道我需要使用嵌套的select語句,但實際上不知道如何對佣金以及汽車價格進行匯總? 我猜我可以用兩個陳述來做到這一點-但一點也不確定。
編輯:Com表:
ComNo minValue maxValue comAvliable
0 0 5000 2
1 5001 10000 3
2 10001 15000 4
3 15001 99999999 5
我認為您可以加入Com表並獲取您的值。 通過使用條件聯接在Com表上聯接,將返回所需的comAvailable百分比。 然后對那個* carPrice求和:
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映射返回了多行,則將產生錯誤
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.