编写一个存储过程GiveGonus,实现对客户的奖励计划。具体为:
1 对18岁以下的人,积分增加1%
2 对18岁以上,30岁以下的人,积分增加5%
3 对30岁以上,40岁以下的人,积分增加10%
4 对于40岁以上的人,积分加10分
5 对于女性,采取特别奖励,如果女性客户在以上四条措施实施后,奖励的积分不足5分,那么女性客户可以享受5分的奖励,否则维持上述四条措施产生的奖励注:以上年龄均为实岁数据库中有个客户积分表CustomerBonus,该表定义为:
英文字段名 中文字段名 字段类型
CuseromerID 客户ID 数值型(主键)
IdentityCardNo 身份证号 字符型(15或18位数字)
Point 积分 数值型(主键)
Bonus 奖励积分 数值型(主键)该存储过程实质上是对客户积分表CustomerBonus进行更新,填写Bonus字段。不要告诉我用case when什么的,我要整个详细的过程,谢谢!
1 对18岁以下的人,积分增加1%
2 对18岁以上,30岁以下的人,积分增加5%
3 对30岁以上,40岁以下的人,积分增加10%
4 对于40岁以上的人,积分加10分
5 对于女性,采取特别奖励,如果女性客户在以上四条措施实施后,奖励的积分不足5分,那么女性客户可以享受5分的奖励,否则维持上述四条措施产生的奖励注:以上年龄均为实岁数据库中有个客户积分表CustomerBonus,该表定义为:
英文字段名 中文字段名 字段类型
CuseromerID 客户ID 数值型(主键)
IdentityCardNo 身份证号 字符型(15或18位数字)
Point 积分 数值型(主键)
Bonus 奖励积分 数值型(主键)该存储过程实质上是对客户积分表CustomerBonus进行更新,填写Bonus字段。不要告诉我用case when什么的,我要整个详细的过程,谢谢!
2、根据客户的年龄进行判断,case then 就和if...els的语法一样
case when age<18 then point+(point*0.1)
when agr>=18<35 then ...
end case;
3、update CustomerBonus set point=... where ...
dddddd yymmdd xx p
18位的身份证号:
dddddd yyyymmdd xx p y其中dddddd为地址码(省地县三级)
18位中的和15位中的不完全相同:
yymmdd yyyymmdd 为出生年月日;
xx为顺号类编码;
p为性别;
18位号码中末尾的y为校验码
2句sql就是先更新
set bouns = Point * ( 0.1 * ( age < 40) - 0.05 ( age < 30 ) - 0.04 * (age < 18 ) ) + 10 * ( age >= 40) )
下面再
set bouns = 5 where sex = female and bouns < 5