2009-11-01 91 views
0

感謝所有幫助到目前爲止,現在我遇到了一個主要問題!查詢從2個不同的表中拉出總和,這可能在一個查詢中嗎?

我有2個表,其中包含每日佣金,並且每天,我必須SUM每個表中的每日總計。每日限額最高限額爲100美元,因此每天超過100美元的限額爲100美元。

員工(EMPLOYEEID INT PK,totalCommisions INT)

現在包含comission數據的2個表是:

ProductSales(的productID INT,EMPLOYEEID INT,佣金INT,創建DATETIME)

引薦(referalID INT,employeeID INT,佣金INT,創建DATETIME)。

員工可以在一天內有10個產品的銷售額,並有50個推薦人。 關鍵是,如果超過$ 100,productSales和Referrals的佣金總和設置爲$ 100(即每日最高$ 100)。

我需要的查詢是更新員工表TotalCommission列與每個員工(整個期間,沒有日期範圍)獲得的總行業。

查詢將不得不使用CASE語句,因爲每日總數不能超過$ 100(當天的ProductSales和Referrals的佣金總和)。

前一題: Query to get sum of an employees commission

+0

至少,你應該提供一個鏈接回你前面的問題,因爲這是它的一個直接派生:http://stackoverflow.com/questions/1658421/query-to-get-sum -of-AN-員工提成/ 1658468#1658468 – Amber 2009-11-01 23:25:02

回答

1

也許是這樣的 -

select employeeID, Year(Created), Month(Created), Day(Created), 
case 
    WHEN sum(Commission) > 100 THEN 100 
    ELSE sum(Commission) 
END 
from 
(
    select employeeID, Created, commission from ProductSales 
    UNION ALL 
    select employeeID, Created, commission from Referrals 
) Commissions 
group by employeeID, Year(Created), Month(Created), Day(Created) 
1

這可以很容易地使用子查詢來實現的。你寫一個簡單的查詢來完成一個表的操作,對另一個表執行相同的操作,然後將這兩個表單連接起來,然後在選擇部分中完成你必須做的事情。 查詢看起來某事像這樣:

SELECT(這裏不用的情況下,總結)FROM(從ProductSales查詢) OUTER JOIN(從Refferals查詢)ON(...)

相關問題