求一个SQL的计算字段写法

knife_s 2008-06-16 10:10:33
关于提成计算的,

销售表
重量,数量,销售额,大类,小类
5 5 1000 A A

价格表
大类,小类,单价
A A 100

提成表
系数  提成百分比
1 0.1
1.1 0.15
1.2 0.2


select 重量,数量,销售额,(销售额/重量) as 单价 from 销售表

现在我要增加一个提成的计算字段,应该怎么写SQL(我不知道这可不可以实现,不过还是来问一下,多谢)

如果销售单价等于价格表中的单价,提成千分之一
如大于单价但倍数小于1.1,提成千分之一点五,
单价等于销售额除以重量

PS;字段用中文表示只是方便大家能更快的理解,没有包含所有字段及字段原来英文名称

...全文
150 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
knife_s 2008-06-16
  • 打赏
  • 举报
回复
这个意思就是,
如果销售表中的销售额除以重量得出的单价等于价格表的单价,提成销售额的0.001
wzy_love_sly 2008-06-16
  • 打赏
  • 举报
回复
如果销售单价等于价格表中的单价,提成千分之一
如大于单价但倍数小于1.1,提成千分之一点五,

这块不太清楚,

我理解是:
select 重量,数量,销售额,(销售额/重量) as  单价,
case when a.销售额/数量=b.单价 then 0.001 when ..... end as [提成比例]
from 销售表 a left join 价格表 b on a.大类=b.大类
and a.小类=b.小类
nzperfect 2008-06-16
  • 打赏
  • 举报
回复
结贴吧
RoverX 2008-06-16
  • 打赏
  • 举报
回复
类似下面的结果吧:

DECLARE @t1 TABLE (重量 float null,数量 float null,销售额 float null,大类 varchar(10) null,小类 varchar(10) null)
INSERT INTO @t1 SELECT 50,50,100,'A','A1'
UNION ALL SELECT 100,100,100,'A','A2'

DECLARE @t2 TABLE(大类 varchar(10) null,小类 varchar(10) null, 单价 float null)
INSERT INTO @t2 SELECT 'A','A1',1
UNION ALL SELECT 'A','A2',1

DECLARE @t3 TABLE(系数 float null,提成百分比 float null)
INSERT INTO @t3 SELECT 1,0.1
UNION ALL SELECT 1.1,0.15
UNION ALL SELECT 1.2,0.2

SELECT 重量, 数量, 销售额, 单价,提成百分比=MAX(提成百分比) FROM
(SELECT a.重量,a.数量,a.销售额,单价= a.销售额/a.重量,c.提成百分比 FROM @t1 a
left join @t2 b ON a.大类=b.大类 and a.小类=b.小类
left join @t3 c ON a.销售额/a.重量/b.单价>=c.系数
) a GROUP BY 重量, 数量, 销售额, 单价

重量 数量 销售额 单价 提成百分比
---------------------- ---------------------- ---------------------- ---------------------- ----------------------
50 50 100 2 0.2
100 100 100 1 0.1


应该可以简单一点,看看高手怎么写,顺便学习
LIHY70 2008-06-16
  • 打赏
  • 举报
回复
我也是这样理解的
LIHY70 2008-06-16
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 wzy_love_sly 的回复:]
如果销售单价等于价格表中的单价,提成千分之一
如大于单价但倍数小于1.1,提成千分之一点五,

这块不太清楚,

我理解是:

SQL codeselect 重量,数量,销售额,(销售额/重量) as 单价,
case when a.销售额/数量=b.单价 then 0.001 when ..... end as [提成比例]
from 销售表 a left join 价格表 b on a.大类=b.大类
and a.小类=b.小类
[/Quote]
wzy_love_sly 2008-06-16
  • 打赏
  • 举报
回复
不理想?步步说清楚,结果就理想拉 :)
烈火焚身 2008-06-16
  • 打赏
  • 举报
回复
......
knife_s 2008-06-16
  • 打赏
  • 举报
回复
谢谢了,弄出来了,只是效果不太理想,还是程序做算了

34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧