2016-11-30 6 views
0

..計算この1にほとんどスタックの各営業担当者のための手数料

質問:は手数料が注文のコストの5%であると仮定すると、各営業担当者のための手数料を計算します。従業員の姓と名で並べ替えます。このデータベースの

.. 私が持っているものHERESにhttp://richardtwatson.com/dm6e/images/general/ClassicModels.png

..

SELECT salesRepEmployeeNumber, amount * orderNumber AS commission, 
CONCAT(firstName, ' ', lastName) AS sales_rep 
    FROM Customers, Payments, Employees, Orders 
    WHERE Payments.customerNumber= Customers.customerNumber 
     AND (amount * orderNumber) * .05` 

`

が、明らかに、このクエリでどこなしに行きます!

TIA

+0

(1)あなたのSELECTを編集し、それをより読みやすくしてください。 (2)4つのテーブルからデータを取得していますが、それらの間でどのように同期するかは明確ではありません(各テーブルから特定のレコードを選択するには少なくとも3つの条件が必要です。 (3)あまり重要ではありませんが、あなたは5%ではなく50%を計算しています。私はあなたが新しいSQLであると思いますよね? – FDavidov

+0

私はそれをより読みやすくするためにクエリを編集しました。あなたの質問に答えるために、はい、私は新しいです、私は今3時間このクエリを解決しようとしています、そして、私はそれを失い始め、意味がないものに入ったと思います。それでも助けが必要です。ありがとうございました。 – binmop

+0

は支払いと注文の間に何の関係もありませんか? – McNets

答えて

0

わかりました、私はそれを考え出したかもしれないと思うので...簡単な方法があれば、私に知らせてください!

SELECT Customers.salesRepEmployeeNumber, CONCAT(firstName, ' ', lastName) AS Employee, (amount*5)/100 AS commission 
FROM Customers, Payments, Employees 
WHERE Payments.customerNumber= Customers.customerNumber 
ORDER BY lastName, firstName; 
0
SELECT c.salesRepEmployeeNumber, CONCAT(firstName, ' ', lastName) AS Employee,(amount*0.05) AS commission 
FROM Customers as c 
join Payments as p 
    on c.customerNumber=p.customerNumber 
join Employees as e 
    on p.customerNumber=e.customerNumber 
ORDER BY lastName, firstName; 
関連する問題