我正在努力查询。我想根据另一列的结果将一列的结果(十进制8,2)增加10%或20%,例如球队。因此,a团队为10%,b团队为20%,c团队为10%,依此类推。%增长所基于的字段是int字段。
我试图通过使用强制转换来做到这一点,但随后一切都失败了,并且现在困扰着我。有想法吗?
这是我的基本表的示例-我正在尝试更多练习,因此我现在在工作中并不是完全没用的,应该使用SQL:
select
Employee_No,
First_Name,
Last_Name,
Annual_Salary,
case d.Department_No
when '20' then Annual_Salary+5%
when '10' then Annual_Salary+5%
when '50' then Annual_Salary+10%
when '80' then Annual_Salary+10%
when '90' then Annual_Salary+10%
when '110' then Annual_salary10+%
else Annual_Salary
end
,
Department_Name,
Department_No
from dbo.employees
答案 0 :(得分:0)
您需要计算薪水的一部分并将其相加。在CASE
中定义正确的因子,然后将salaray乘以它们。
SELECT employee_no,
first_name,
last_name,
annual_salary,
annual_salary
+ CASE
WHEN department_no IN ('10', '20') THEN
.05
WHEN department_no IN ('50', '80', '90', '110') THEN
.1
ELSE
0
END
* annual_salary,
department_name,
department_no
FROM dbo.employees;
答案 1 :(得分:0)
大概这是您想要的逻辑:
sudo python3 -m pip install <packagename>
注意:
select e.Employee_No, e.First_Name, e.Last_Name,e.Annual_Salary,
(Annual_Salary *
(case when e.Department_No in (10, 20) then 1.05
when e.Department_No in (80, 90, 110) then 1.10
else 1
end)
) as incremented_salary
d.Department_Name,
d.Department_No
from dbo.employees e join
dbo.departments d
on d.department_no = e.department_no;
部分。join
是一个数字,所以我删除了常数周围的单引号。如果不正确,请保留单引号。department_no
。 (该问题并未明确说明。)