感谢目前为止的所有帮助,现在我遇到了一个重大问题!
我有2个包含每日佣金的表格,每天 ,我必须从每个表格中提取每日总数。每日限额最高为100美元,因此每天超过100美元的价格为100美元。
员工(employeeID INT PK,totalCommisions INT)
现在包含委托数据的2个表是:
ProductSales(productID INT,employeeID INT,Commission INT,Created DATETIME)
推荐(referalID INT,employeeID INT,佣金INT,创建DATETIME)。
员工每天可以有10个产品销售,50个推荐。 关键是,产品销售和推荐的佣金总和,如果超过100美元,则设定为100美元(即每日最高100美元)。
我需要的查询是更新Employee表TotalCommission列,其中包含每位员工的总佣金(整个期间,没有日期范围)。
查询必须使用CASE语句,因为每日总数不能超过100美元(当天的ProductSales和Referrals的佣金总和)。
答案 0 :(得分:1)
使用子查询可以轻松实现。您编写简单查询以使用一个表执行该操作,对另一个表执行相同操作然后将这两个表连接起来并执行您在select部分中必须执行的操作。 查询看起来像这样:
SELECT(这里是案例和总结) FROM(来自ProductSales的查询)OUTER JOIN(来自Refferals的查询)ON(...)
答案 1 :(得分: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)