我不确定,为什么这不起作用。
我有两个简单的表格:
Orders
OrderTypeID EmployeeID Completion_needed
10308 72 15%
10309 73 20%
10310 74 30%
Customers
Customer ID OrderTypeID OrderDate Order_completed
1 10308 2015-09-18 5%
2 10309 2015-09-19 30%
3 10310 2017-09-20 25%
4 10308 2015-09-18 17%
2 10308 2015-09-19 20%
3 10309 2017-09-20 7%
我想计算有多少客户有未完成的订单,其中Customers表中的Order_completed小于Orders表中的Completion_needed(请注意,客户可以拥有多个订单类型)。
这是我的查询,但结果错误:
SELECT COUNT(c.CustomerID) as count_employees
FROM Orders od
JOIN Customers c
ON od.OrderTypeID = c.OrderTypeID
WHERE od.Completion_needed > c.Order_completed
我得到1;但我应该得到2的计数。
答案 0 :(得分:1)
我没看到你的查询得到“1”。我看到它产生“3”。所以,我认为你需要的是COUNT(DISTINCT)
:
SELECT COUNT(DISTINCT c.CustomerId)
FROM Orders od JOIN
Customers c
ON od.OrderTypeID = c.OrderTypeID
WHERE c.Order_completed < od.Completion_needed;