SQL 查询 - 检查每个员工的总金额并显示金额小于 5000 的员工
SQL Query - to check total amount of each employee and display those employee with amount less than 5000
我目前正在执行一项任务,我需要计算每个员工拥有的产品总量。然后,我需要设置一个固定金额(5000)并显示那些总金额小于固定金额(5000)的员工。任何人都可以提供针对此特定问题的查询示例吗?
Table T2 将 return 小于 5000 的员工列表,然后与您的员工主 table T2 加入。根据需要更改 table 名称。
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;
将上面的图像作为虚拟图像 table,您可以使用此查询来获得合适的结果
SELECT productid, price + productid as Amount
FROM Products
where Amount < 15
order by productid
执行此查询将给出如下图所示的结果:
我目前正在执行一项任务,我需要计算每个员工拥有的产品总量。然后,我需要设置一个固定金额(5000)并显示那些总金额小于固定金额(5000)的员工。任何人都可以提供针对此特定问题的查询示例吗?
Table T2 将 return 小于 5000 的员工列表,然后与您的员工主 table T2 加入。根据需要更改 table 名称。
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;
将上面的图像作为虚拟图像 table,您可以使用此查询来获得合适的结果
SELECT productid, price + productid as Amount
FROM Products
where Amount < 15
order by productid
执行此查询将给出如下图所示的结果: