2016-11-30 62 views
0

小卡在這一個..計算佣金爲每個銷售代表

問題:計算佣金每個銷售代表,假設佣金是爲了成本的5%。按員工姓氏和名字排序。

這個數據庫.. 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)請編輯您的選擇,並使其更具可讀性。 (2)您從4個表中檢索數據,並且不清楚如何在它們之間進行同步(至少需要3個條件才能從每個表中選擇特定的記錄,而您只有1.5個)。 (3)不太重要,但你計算的是50%而不是5%。我猜你是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;