关于某个字段的值是一个公式的运算结果的问题

SuperKick 2005-07-15 11:00:28
问题如下:
有一个表存的是商品的信息,其中一个字段是进口价。现在要实现如下功能:建一个视图,该视图的一个字段叫销售价是根据进口价用一个公式:XSJ = ( ( JKJ * M ) + A ) / S 计算出来的。其中XSJ就是销售价,JKJ是进口价。 M,A,S是三个系数而且会经常变,所以没有办法只能存在一个配置参数表中,表名叫TSConfig,有两个字段:ID,TSConfigValue(其中ID = 1的记录存的就是M,其中ID = 2的记录存的就是A,其中ID = 3的记录存的就是S)。这样的话出现一个问题,如何用SQL实现把 M,A,S从TSConfig中读取出来然后用公式算出销售价?最好直接在视图中实现,先谢了!
...全文
54 点赞 收藏 4
写回复
4 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
hsj20041004 2005-07-15
有一点得保证:就是你的TSConfig表中没有和商品编号有关的信息
也就是语句select TSConfigValue from TSConfig where id=2 查询出来的结果只有一个。
回复
hsj20041004 2005-07-15
create view V_xsj
as

select XSJ = ( ( JKJ * (select TSConfigValue from TSConfig where id=1) )
+(select TSConfigValue from TSConfig where id=2)) /
(select TSConfigValue from TSConfig where id=3 ) from 商品的信息表
回复
子陌红尘 2005-07-15
增加对空值NULL的处理:

create view v1 as
select
XSJ = (a.JKJ*isnull(b.M,0)+isnull(b.A,0))/isnull(b.S,1.0)
from
商品信息表 a,
(select
M = max(case ID when 1 then TSConfigValue end),
A = max(case ID when 2 then TSConfigValue end),
S = max(case ID when 3 then TSConfigValue end)
from
TSConfig) b
回复
子陌红尘 2005-07-15
create view v1 as
select
XSJ = (a.JKJ*b.M+b.A)/b.S
from
商品信息表 a,
(select
M = max(case ID when 1 then TSConfigValue end),
A = max(case ID when 2 then TSConfigValue end),
S = max(case ID when 3 then TSConfigValue end)
from
TSConfig) b
回复
相关推荐
发帖
应用实例
创建于2007-09-28

2.7w+

社区成员

MS-SQL Server 应用实例
申请成为版主
帖子事件
创建了帖子
2005-07-15 11:00
社区公告
暂无公告