1

毎月の株売りに基づいて、一人の従業員が稼ぐコミッションの合計額を選択しようとしています。、3つのテーブル(tbl_carForSale、tbl_Commision、tbl_employee)があります。

従業員が販売したすべての車の合計値を取得できますが、私がやりたいのは、従業員が獲得したであろうコミッションの合計額を計算できるようにすることです(これは、に基づく変動コミッションです)。製品の価格について)たとえば、製品が1,000ポンドの場合、手数料の額は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ステートメントを使用する必要があることは知っていますが、実際には、手数料と車の価格をどのように合計できるかについてはわかりません。私は2つのステートメントでそれを行うことができると推測しています-しかし、まったくわかりません。

編集:Comテーブル:

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

1 に答える 1

1

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_ComtcがcarPrice/comAvailableマッピングに対して複数の行を返す場合、エラーが生成されます

于 2013-03-19T15:33:27.410 に答える