求出男女平均工资,然后对比,若男的比女的高出50%,显示男的工资比女的高多了,若在0.8-1.5范围则显示差不多,其余显示女的工资比男的高多了
use factory
declare @a money,@b money
set @a=(select avg(z.工资) from worker x,salary z where x.姓名=z.姓名 and x.性别='男')
set @b=(select avg(z.工资) from worker x,salary z where x.姓名=z.姓名 and x.性别='女')
select @a as '男职工平均工资',@b as '女职工平均工资'case result
  when @a>1.5*@b then '男职工的工资比女职工高多了'
  when @a/@b in (0.8,1.5) then  '男女职工平均工资差不多' 
  else  '女职工比男职工平均工资高多了' 
end as '结果'问题提示case语句出错,请问怎么修改

解决方案 »

  1.   

    declare @a money,@b money
    set @a=(select avg(z.工资) from worker x,salary z where x.姓名=z.姓名 and x.性别='男')
    set @b=(select avg(z.工资) from worker x,salary z where x.姓名=z.姓名 and x.性别='女')
    select @a as  男职工平均工资,@b as 女职工平均工资,
    case when   @a>1.5*@b then '男职工的工资比女职工高多了'
      else case when @a/@b between 0.8 and 1.5 then  '男女职工平均工资差不多'
      else  '女职工比男职工平均工资高多了' end
    end as  结果 
      

  2.   


    use factory 
    declare @a money,@b money 
    set @a=(select avg(z.工资) from worker x,salary z where x.姓名=z.姓名 and x.性别='男') 
    set @b=(select avg(z.工资) from worker x,salary z where x.姓名=z.姓名 and x.性别='女') 
    select @a as '男职工平均工资',@b as '女职工平均工资',
    case
      when @a>1.5*@b then '男职工的工资比女职工高多了' 
      when @a/@b between 0.8 and 1.5 then  '男女职工平均工资差不多' 
      else  '女职工比男职工平均工资高多了' 
    end as '结果' 
      

  3.   

    case前面少了逗号。。
    use factory 
    declare @a money,@b money 
    set @a=(select avg(z.工资) from worker x,salary z where x.姓名=z.姓名 and x.性别='男') 
    set @b=(select avg(z.工资) from worker x,salary z where x.姓名=z.姓名 and x.性别='女') 
    select @a as '男职工平均工资',@b as '女职工平均工资'
    ,case result 
      when @a>1.5*@b then '男职工的工资比女职工高多了' 
      when @a/@b in (0.8,1.5) then  '男女职工平均工资差不多' 
      else  '女职工比男职工平均工资高多了' 
    end as '结果' 
      

  4.   


    -->try
    use factory 
    declare @a money,@b money 
    set @a=(select avg(z.工资) from worker x,salary z where x.姓名=z.姓名 and x.性别='男') 
    set @b=(select avg(z.工资) from worker x,salary z where x.姓名=z.姓名 and x.性别='女') 
    select @a as '男职工平均工资',@b as '女职工平均工资' ,case --result 
      when @a>1.5*@b then '男职工的工资比女职工高多了' 
      when @a/@b in (0.8,1.5) then  '男女职工平均工资差不多' 
      else  '女职工比男职工平均工资高多了' 
    end as '结果' 
      

  5.   

    有两处,一处逗号,一处多了result