很郁闷也很急的一个问题。。HELP

t16qxz 2009-03-29 12:43:01
我现在有张表 字段分别是
公式 分数
A+10%<B 150
A+5%<B<=A+10% 120
A-5%<B<=A+5% 100
B<=A-5% 50

A和B是穿进去的2个参数。我现在不知道怎么把这2个参数运用到公式上面后得到分数。。请问这个要怎么做啊
...全文
153 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
t16qxz 2009-03-30
  • 打赏
  • 举报
回复
5555555..没人回答吗?
t16qxz 2009-03-30
  • 打赏
  • 举报
回复
自己顶上去先~~~
t16qxz 2009-03-30
  • 打赏
  • 举报
回复
今天继续。。各位有什么好思路请说出来
t16qxz 2009-03-29
  • 打赏
  • 举报
回复
假如我传进来的值是:A=10,B=11的话,那么满足第一个公式,得到分数150
t16qxz 2009-03-29
  • 打赏
  • 举报
回复
放的就是公式 A+10% <B 这样一个字符串,其实这个公式就是一个条件。 A和B就是要往里面传的值。满足条件后得到这个公式相对应的分数。。
sdhdy 2009-03-29
  • 打赏
  • 举报
回复
公式字段里:放的就是 A+10% <B吗?你要往里传多少?得到什么值?
t16qxz 2009-03-29
  • 打赏
  • 举报
回复
只要拿一个公式来举个例子就可以了。我现在头脑里面根本有思路
claro 2009-03-29
  • 打赏
  • 举报
回复
帮顶。
t16qxz 2009-03-29
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 dtxh168 的回复:]
引用 10 楼 sdhdy 的回复:
SQL code
--楼上的,这个肯定不行,这个是根据11 <=10-5/100.0这个条件判断取值的,和根据公式取值对应不上。
select [分数] from tb where 11 <=10-5/100.0


用游标是逐条记录判断,只要返回的rowcount不为0,就是要取的结果,我觉得是可以的
[/Quote]



看你们说的我怎么看不懂啊。。请问这个游标要怎么设置才能读到分数啊
t16qxz 2009-03-29
  • 打赏
  • 举报
回复
日。。搞到现在还毛搞出来。真是郁闷死了
t16qxz 2009-03-29
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 dtxh168 的回复:]
引用 10 楼 sdhdy 的回复:
SQL code
--楼上的,这个肯定不行,这个是根据11 <=10-5/100.0这个条件判断取值的,和根据公式取值对应不上。
select [分数] from tb where 11 <=10-5/100.0


用游标是逐条记录判断,只要返回的rowcount不为0,就是要取的结果,我觉得是可以的
[/Quote]


能否具体说明下
dtxh168 2009-03-29
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 sdhdy 的回复:]
SQL code
--楼上的,这个肯定不行,这个是根据11<=10-5/100.0这个条件判断取值的,和根据公式取值对应不上。
select [分数] from tb where 11<=10-5/100.0
[/Quote]

用游标是逐条记录判断,只要返回的rowcount不为0,就是要取的结果,我觉得是可以的
sdhdy 2009-03-29
  • 打赏
  • 举报
回复

--楼上的,这个肯定不行,这个是根据11<=10-5/100.0这个条件判断取值的,和根据公式取值对应不上。
select [分数] from tb where 11<=10-5/100.0
dtxh168 2009-03-29
  • 打赏
  • 举报
回复
试试这个方法
create table [tb]([公式] varchar(13),[分数] int)
insert [tb]
select 'A+10%<B',150 union all
select 'A+5%<B<=A+10%',120 union all
select 'A-5%<B<=A+5%',100 union all
select 'B<=A-5%',50

select * from [tb]

declare @a varchar(5),@b varchar(5)
set @a=10
set @b=11

declare @sql varchar(1000)
set @sql=''
select @sql='select [分数] from tb where '+replace(replace(replace([公式],'A',@a),'B',@b),'%','/100.0') from tb
print @sql

/**

select [分数] from tb where 11<=10-5/100.0

*/

这个一条记录的判断,可以用游标判断符合条件的记录
t16qxz 2009-03-29
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 sdhdy 的回复:]
公式字段里:放的就是 A+10% <B吗?你要往里传多少?得到什么值?
[/Quote]



我现在的表设计就是 A+10% 放一个字段,<放一个字段, B放一个字段的。我为了能让大家看的清楚所以就写成一个字段了
t16qxz 2009-03-29
  • 打赏
  • 举报
回复
我觉得这个是不是不能让客户去维护啊。。我觉得很不合理啊
sdhdy 2009-03-29
  • 打赏
  • 举报
回复
把公式拆开吧,把A,B单列为2个字段,关系再一个字段试试。
t16qxz 2009-03-29
  • 打赏
  • 举报
回复
大家有没有好的思路告知一下啊

34,590

社区成员

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

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