【发布时间】:2017-09-19 04:00:36
【问题描述】:
我目前正在执行一项任务,我需要计算每个员工拥有的产品总量的总和。然后,我需要设置一个固定金额(5000)并显示那些总金额小于固定金额(5000)的员工。谁能提供针对这个特定问题的查询示例?
【问题讨论】:
-
您使用的是 MySQL 还是 MS SQL Server? (不要标记未涉及的产品。)
标签: mysql sql sql-server rdbms
我目前正在执行一项任务,我需要计算每个员工拥有的产品总量的总和。然后,我需要设置一个固定金额(5000)并显示那些总金额小于固定金额(5000)的员工。谁能提供针对这个特定问题的查询示例?
【问题讨论】:
标签: mysql sql sql-server rdbms
将上面的图片作为虚拟表,你可以使用这个查询来得到你合适的结果
SELECT productid, price + productid as Amount
FROM Products
where Amount < 15
order by productid
执行此查询将得到如下图所示的结果:
【讨论】:
表 T2 将返回少于 5000 的员工列表,然后将其与您的员工主表 T2 连接。根据需要更改表名。
SELECT * FROM EMPLOYEE T1 JOIN
(SELECT EmployeeID,SUM(AMOUNT) AMOUNT FROM PRODUCT
GROUP BY EmployeeID
HAVING SUM(AMOUNT)<5000) T2 ON T1.EmployeeID=T2.EmployeeID
【讨论】:
如果您使用的是以上 SQL Server 2012:
SELECT *
FROM ( SELECT * ,
SUM(AMOUNT) OVER ( PARTITION BY EmployeeID ) AS EmpTotal
FROM PRODUCT
) t
WHERE t.EmpTotal > 5000;
【讨论】: