现在所有部门的补贴金额都是乘7的,小弟现在想把depart_id的开头为18的部门补贴金额变成乘8,而其它部门不变仍然是乘7的,应该如何改?谢谢
select
departs.depart_name '部门名称',
sum(mealrecords.times_money) '补贴次数',
sum(mealrecords.times_money)*7 '补贴金额'from
mealrecords,
departs,
employee
where
employee.emp_id=mealrecords.emp_id and
departs.depart_id= employee.depart_id and
mealrecords.flag='5' and
convert(varchar(7),mealrecords.sign_time,120)=
substring( :补贴月份 ,1,4)+'-'+substring( :补贴月份 ,5,2)
group by departs.depart_name,departs.depart_id
order by departs.depart_id
select
departs.depart_name '部门名称',
sum(mealrecords.times_money) '补贴次数',
sum(mealrecords.times_money)*7 '补贴金额'from
mealrecords,
departs,
employee
where
employee.emp_id=mealrecords.emp_id and
departs.depart_id= employee.depart_id and
mealrecords.flag='5' and
convert(varchar(7),mealrecords.sign_time,120)=
substring( :补贴月份 ,1,4)+'-'+substring( :补贴月份 ,5,2)
group by departs.depart_name,departs.depart_id
order by departs.depart_id
'补贴金额' =case depart_id
when depart_id=18
then sum(mealrecords.times_money)*8 '
else
sum(mealrecords.times_money)*7
end
when depart_id like '18%'
then sum(mealrecords.times_money)*8
else
sum(mealrecords.times_money)*7
end
departs.depart_name '部门名称',
sum(mealrecords.times_money) '补贴次数',
sum(mealrecords.times_money)*7 '补贴金额'
,sum(case when convert(varchar(7),mealrecords.sign_time,120)=
substring( :补贴月份 ,1,4)+'-'+substring( :补贴月份 ,5,2) and ltrim(depart_id) like '18%'
then mealrecords.times_money else 0 end)*8 '你要的补贴金额'from
mealrecords,
departs,
employee
where
employee.emp_id=mealrecords.emp_id and
departs.depart_id= employee.depart_id and
mealrecords.flag='5' and
convert(varchar(7),mealrecords.sign_time,120)=
substring( :补贴月份 ,1,4)+'-'+substring( :补贴月份 ,5,2)
group by departs.depart_name,departs.depart_id
order by departs.depart_id