0
我在与下面的查询问题,在SQL Server的工作。使用聚集和MAX函数
SELECT
emp_id= CASE employee_id
WHEN ''
THEN RTRIM(last_name) + '_' + RTRIM(first_name)
+ '_' + RTRIM(gender) + '_'
+ RTRIM(race_ethnicity_code) + '_'
+ RTRIM(high_degree_code) + '_' + RTRIM(position_code) + '_'
+ RTRIM(assignment_code)
ELSE employee_id
END ,
last_name, first_name,
assign_perc,
assignment_num,
CAST((total_salary)AS NUMERIC (18,2))* CAST((assign_perc) AS NUMERIC (18,2)) AS salary,
total_salary
FROM employee
ORDER BY last_name, first_name, district_name
我的脚本是一个简单的列提取,当emp_id为null时,通过case语句创建一个唯一的键。我遇到的问题是,当这个人有多个分配时,将assign_perc与total_Salary相乘,并且当该销售人员仅列出一次时获得最高工资。例如 - 我的预计业绩:
约翰·史密斯是唯一被列具有一种分配的兼职工人只有一次,所以他assign_perc将小于1但我仍然需要最高的薪水,而不是总计(assign_perc * total_salary)。感谢您的帮助。
您的结果与SQL不一致。对于约翰史密斯,薪水和总薪水有相同的价值,但薪水应根据您的查询0.75 * total_salary。 –
我提供的结果是我需要的。我的查询目前正在生产(.75 * 10400)= 7800 - 约翰史密斯的薪水。 – Tone
解决方案将非常麻烦,因为您没有简单的方法来确定特定员工的条目数量,而无需具体的employee_id。 – PinnyM