我想要一份员工名单 已经开展了总薪酬最高的活动。
不要使用代码,例如......其中actid = 151 ... ect
•注意:活动的总工资是(工作总时数*匹配的总和) 每小时收费) (例如,活动总薪资151为10.5小时@ $ 50.75 + 11.5小时@ $ 25 + 3小时@ $ 33,)
您必须在您的子查询中使用子查询 解。
ACTID HRSWORKED HOURLYRATE Total Pay
163 10 45.5 455
163 8 45.5 364
163 6 45.5 273
151 5 50.75 253.75
151 5.5 50.75 279.125
155 10 30 300
155 10 30 300
165 20 25 500
155 10 30 300
155 8 27 216
151 11.5 25 287.5
151 1 33 33
151 1 33 33
151 1 33 33
你非常感激时间和精力。谢谢!!
答案 0 :(得分:0)
在不了解架构的情况下,我只能提供一个可能的草图(你必须计算总薪水并提供所有必要的JOIN和谓词):
SELECT DISTINCT(employee id) -- reconfigure if more then just employee id
FROM <table(s)>
[WHERE...]
{ WHERE | AND } total pay = (SELECT MAX(total pay)
FROM <table(s)>
[WHERE...]);
我使用了DISTINCT
,因为可能有多个具有相同MAX
值和重叠员工的活动。如果您在输出中包含ACTID
,那么您将不需要DISTINCT
,因为同一个员工不应该在项目上两次(除非他们被项目中的角色跟踪,在这种情况下单个员工可能有多个角色 - 这一切都取决于数据集。