返回至少有 2 个不同订单的员工,其中订单中某些产品的数量 >= 5。
* Format:
* EmployeeId, EmployeeName, orderCount
到目前为止我已经写了这个:
ResultSet rst = stmt.executeQuery("SELECT Employee.EmployeeId,EmployeeName, COUNT(DISTINCT Orders.EmployeeId) as orderCount "
+ "FROM Employee,Orders,OrderedProduct"
+ " WHERE quantity >=5 AND Employee.EmployeeId = Orders.EmployeeId AND Orders.OrderId = OrderedProduct.OrderId"
+ " GROUP BY OrderedProduct.OrderId,Employee.EmployeeId,EmployeeName");
我得到了结果:
EmployeeId, EmployeeName, orderCount
E0002, E. Edwards, 1
E0007, I. Irvin, 1
E0006, D. Davis, 1
E0001, B. Bogart, 1
E0006, D. Davis, 1
但是我正在寻找的是
OrderId, EmployeeId, EmployeeName, orderCount
E0006, D. Davis, 2
我不知道如何数 D. Davis 两次,非常感谢一些帮助
最佳答案
您应该过滤结果,添加HAVING COUNT(DISTINCT Orders.EmployeeId) > 1
ResultSet rst = stmt.executeQuery("SELECT Employee.EmployeeId, EmployeeName, COUNT(DISTINCT Orders.OrderId) as orderCount "
+ " FROM Employee,Orders,OrderedProduct"
+ " WHERE quantity >=5 AND Employee.EmployeeId = Orders.EmployeeId AND Orders.OrderId = OrderedProduct.OrderId"
+ " GROUP BY Employee.EmployeeId,EmployeeName"
+ " HAVING COUNT(DISTINCT Orders.OrderId) >1 ");
关于mysql - 返回至少有 2 个不同订单的员工,其中订单中某些产品的数量 >= 5,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47043304/