求救!一个SQL语句,在线急等
销售额为50000元
有一个表如下A:
开头符号 开始金额 结束符号 结束金额 奖金比例
< 20000 1%
>= 20000 < 50000 2%
>= 50000 < 100000 5%
> 100000 7%
根据销售额在这个表中的奖金设置段获取奖金 销售额及表A是根据用户设置和可变的
如以上结果为 50000*5%=2500元
在线等呀!
------解决方案----------------------注意:把引号('')之间的空格删除掉
--把表改一下:
/*
开头符号 开始金额 结束符号 结束金额 奖金比例
---------- ----------- ---------- ----------- -----------
>= 0 < 20000 1
>= 20000 < 50000 2
>= 50000 < 100000 5
>= 100000 < NULL 7
*/
create table tb(开头符号 varchar(10),开始金额 int,结束符号 varchar(10),结束金额 int,奖金比例 int)
insert into tb values('>=',0 ,'<',20000, 1)
insert into tb values('>=',20000 ,'<',50000, 2)
insert into tb values('>=',50000 ,'<',100000,5)
insert into tb values('>=',100000,'<',null,7)
go
declare @xse as int
set @xse = 150000
if @xse < 100000
select (@xse * 奖金比例)/100 奖金 from tb where 开始金额 >= @xse and 结束金额 > @xse and 开头符号 = '>='
else
select (@xse * 奖金比例)/100 奖金 from tb where 结束金额 is null
drop table tb
/*
奖金
-----------
10500
(所影响的行数为 1 行)
*/