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

执行此查询将给出如下图所示的结果: