在一张Work表中有以下字段:员工姓名,部门,工资,工龄
把部门为人力部门同时又是工龄大于等3年的员工的工资涨25%如何写SQL语句update Work
set 工资=工资*1.2
where 部门=‘人力部门’AND 工龄 》=3为何不对?谢谢各位了

解决方案 »

  1.   

    update Work 
    set 工资=工资*1.2 
    where 部门=‘人力部门’AND 工龄 >2
      

  2.   


    怎么不对了??唯一要改的, 就是set 工资=工资*1.25
    ..
      

  3.   

    是对的
    除非你 的工龄字段是datetime类型的
    datediff (y,开始时间,现在时间)>2
    update Work 
    set 工资=工资*1.2 
    where 部门=‘人力部门’AND datediff (y,开始时间,现在时间)>=3
      

  4.   

    declare @t table(部门 varchar(10),工龄 int,工资 money)
    insert @t select '管理部',3,2500
    insert @t select '业务部',2,2000
    insert @t select '制造部',4,2800
    insert @t select '资讯部',2,2500 
    insert @t select '管理部',2.1,2700
    insert @t select '资讯部',3,3000 
    update @t set 工资=(case 
                      when 部门 ='管理部' then 工资*2.0  
                      when 部门 ='资讯部' then 工资*2.5 
                      else 工资*1.0 
                      end)
    select * from @t
      

  5.   

    楼上的资讯部加这多太爽了update Work 
    set 工资=工资*1.25 
    where 部门=‘人力部门’AND datediff (y,开始时间,现在时间)>=3
      

  6.   


    在一张Work表中有以下字段:员工姓名,部门,工资,工龄 
    把部门为人力部门同时又是工龄大于等3年的员工的工资涨25%如何写SQL语句 update Work 
    set 工资=工资*1.2--應該乘以1.25吧 
    where 部门=‘人力部门’AND 工龄 》=3为何不对?谢谢各位了
    --把你的WHERE改成下面看看,你的‘人力部门’的標識符不對,大於符號不是書名號》,是>
    WHERE 部门='人力部门'AND 工龄 >=3--如果工龄是字符型的,最好加上單引號(')
      

  7.   

    update Work 
    set Wages=Wages*1.2 
    where Dep='人力部门' AND WorkTime >2报错 所影响的行数为 3 行)没有结果??????
      

  8.   


    这样写不对吗?
    报什么错啊
    不对的话就加datediff这个函数吧
      

  9.   

    update 执行后是看不到结果 ,再select 就有结果了