现在有一个部门表dept(部门名称,部门号。。)有一个人员表emp(姓名,人员编号,职位,薪资,部门)
emp表中的内容是这样的:
a 1 工程师 3000 软件部
b 2 普通员工 2000 硬件部
c 3 工程师  4000  硬件部
d 4  其他   1500  办公室
薪资增长根据职位来增(工程师薪资增长原来的1.2倍,普通员工增长为原来的1.1倍,其他的增长为原来的1.05倍)
我要查出加薪前和加薪后的人的信息(用sql语句表示出来,我该怎么写呢,请教高手了,谢谢!)

解决方案 »

  1.   

    select 姓名,
           人员编号,
           职位,
           薪资=(case when 职位='工程师' then 薪资*1.2 
                     when 职位='普通员工' then 薪资*1.05 else 薪资 end),
           薪资 as [薪资(调整前)]
    from emp  
      

  2.   

    select t.* , case  职位 when '工程师' then 薪资 * 1.2 when '普通员工' 薪资 * 1.1 else 薪资 * 1.05 end 加薪后 from emp t
      

  3.   

    select *,
    加薪后=薪资*case 职位 when '工程师' then 1.2
                        when '普通员工' then 1.1 
                        when '其他 ' then 1.05
                        else 1
               end
    from emp
      

  4.   

    select a.姓名,加薪前=a.薪资,
        加薪后=a.薪资*case a.职位 when '工程师' then 1.2 when '普通员工' then 1.1 when '其他' then 1.05 else 1 end
    from emp a
        join dept b
            on a.部门=b.部门名称