我的数据库中有以下四个表:
雇员
PK: employeeID;
FK: empBranch references BRANCH;
FK: empSupervisor references EMPLOYEE

支部
PK: branchNumber
FK: branchManager references EMPLOYEE

客户
PK: customerID

命令
PK: orderNumber
FK: customerID references CUSTOMER;
FK: salesPerson references EMPLOYEE

现在我要列举这两件事:
请帮助我回答这两个问题。
发布于 2015-04-25 19:03:50
只向销售员所在城市所在城市的客户销售产品的销售人员的Employee_ID和姓名。
SELECT DISTINCT
e.employeeid,
e.emplname || e.empfname AS salesperson_name
FROM
orders o
INNER JOIN customer c ON o.customerid = c.customerid
INNER JOIN branch b ON o.salesperson = b.branchmanager
INNER JOIN employee e ON o.salesperson = e.employeeid
WHERE
c.custcity = b.branchcity -- salesperson's branch located in the same city as customer发布于 2015-04-25 21:14:02
由于您没有指定特定的RDBMS,所以这是为SQL服务器编写的。
每个城市的计数有很多种方法,但我使用了CTE。
WITH CusPerCity AS -- get client counts per city
(
SELECT
CustCity,
COUNT(Distinct c.CustomerId) CustomersPerCity
FROM Orders o
JOIN Customer c
ON o.customerid = c.customerid
GROUP BY CustCity
)
SELECT
e.EmployeeID,
e.Empfname + ' ' + e.Emplname Name
FROM Orders o
JOIN Customer c
ON o.CustomerID = c.CustomerId
JOIN Employee e
ON o.SalesPerson = e.Employeeid
JOIN Branch b
ON e.EMPBRANCH = b.BranchManager
JOIN CusPerCity cus
ON b.BranchCity = cus.CustCity
WHERE c.CustCity = b.BranchCity
GROUP BY e.Employeeid, e.EMPFNAME + ' ' + e.EMPLNAME, CustomersPerCity
HAVING COUNT(DISTINCT c.customerID) = cus.CustomersPerCity --number of unique customers sold to equals then number of customers in a cityhttps://stackoverflow.com/questions/29869287
复制相似问题