我可能有一个非常简单的问题,但似乎我还找不到解决方案。基本上,我必须编写一个基于 Northwind DB 的 SQL-Server 函数。它必须:
将 2 个日期作为参数并显示,不重复这些Customer 的数据ID | Name | City | Address
,对于那些他从至少一个 Employee购买的总金额大于该 Employee 在两个日期之间的平均销售额的客户。
所以主要步骤应该是:
1. 从每个Employee中检索 Customer 的总购买量。我知道如何从每家公司获得总采购量:
SELECT
Customers.CompanyName, SUM(UnitPrice*Quantity)
FROM Orders inner join [Order Details]
ON Orders.OrderID=[Order Details].OrderID INNER JOIN
Customers ON Orders.CustomerID=Customers.CustomerID
GROUP BY Customers.CompanyName
但是我怎样才能从每个员工那里得到那些呢?
2.将此与该员工在给定日期之间的平均销售额进行对比。我可以得到每个员工的平均值:
SELECT FirstName+' '+LastName, AVG(UnitPrice*Quantity)
FROM Orders inner join [Order Details]
ON Orders.OrderID=[Order Details].OrderID
INNER JOIN Employees
ON Orders.EmployeeID=Employees.EmployeeID
WHERE OrderDate BETWEEN @dt1 and @dt2
GROUP BY FirstName+' '+LastName
请注意,我只是粘贴查询部分,但在这里,员工应该依赖于第一个查询(可能这应该放在子查询中)
一切都应该放在一个函数中(不应该一分为二)。Northwind DB 图是:Northwind Diagram。请帮忙!