mysql - 返回至少有 2 个不同订单的员工,其中订单中某些产品的数量 >= 5

标签 mysql sql jdbc

返回至少有 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/

相关文章:

mysql - 三张 table 相连。即使一张表为空也显示查询结果

mysql - 最小计数

java - 无法在 XAMPP-> mysql 上向 java 显示数据库

java - 本地 Java 应用程序 - 数据库选择

PHP Web服务需要文件错误

php - 用户事件墙的最佳做法

mysql - CONCATS 用于列名、列别名

java - 使用 Java 将变量、数组插入 MySQM 数据库

sql - 聚合函数检查 'if contains'

java - SQL数据库查询语法错误: "Encountered YEAR at line 1"