标题:求助:数据库中的乘法问题
只看楼主
yunj1105
Rank: 1
等 级:新手上路
威 望:1
帖 子:757
专家分:0
注 册:2007-2-13
 问题点数:0 回复次数:5 
求助:数据库中的乘法问题

我的数据库表是这样的
lab_students
user_ID varchar
Cou_mark int
mark int
last_mark int
我想实现将每个人的Cou_mark*50%+mark*50%的结果放到last_mark上
应该怎么写语句啊?

搜索更多相关主题的帖子: 数据库 乘法 mark lab 
2007-06-10 20:14
从小到大
Rank: 1
等 级:新手上路
威 望:2
帖 子:200
专家分:0
注 册:2006-6-24
得分:0 

如果是小数怎么办?
你直接2个加起来除以2 不就可以了吗?


2007-06-10 22:03
yunj1105
Rank: 1
等 级:新手上路
威 望:1
帖 子:757
专家分:0
注 册:2007-2-13
得分:0 
但是要乘的数是由用户设置的啊如果用户输入30%则要算出Cou_mark*30%+mark*70%将结果附给last_mark

2007-06-11 08:44
sky_yang_sky
Rank: 3Rank: 3
等 级:论坛游民
威 望:8
帖 子:481
专家分:16
注 册:2007-5-30
得分:0 

if object_id('lab_students') is not null
drop table lab_students
go
create table lab_students(user_id1 varchar(20),cou_mark int,mark int, last_mark int)
insert into lab_students values('susa',2,3,0)
insert into lab_students values('coca',4,5,0)
update lab_students set last_mark=cou_mark*0.5+mark*0.5
或者是update lab_students set last_mark=(cou_mark+mark)/2
但是這兩種方法都只可取整,沒有小數,上面的結果會是這樣的,不知是不是你要的結果
susa 2 3 2
coca 4 5 4


create table lab_students(name1 varchar(20),cou_mark int, mark int, last_mark as cou_mark*0.5+mark*0.5)
insert into lab_students select 'susa',2,3
union all select 'caco',4,5
這種方法的話就不能確保last_mark是INT,但是可以精確到小數位,結果如下
susa 2 3 2.5
caco 4 5 4.5


你微笑的面對整個世界,整個世界也將會微笑的面對你。
2007-06-11 08:50
sky_yang_sky
Rank: 3Rank: 3
等 级:论坛游民
威 望:8
帖 子:481
专家分:16
注 册:2007-5-30
得分:0 

那樣的話你就在後位自己加一具用戶輸入的欄位用第三種方法就行了


你微笑的面對整個世界,整個世界也將會微笑的面對你。
2007-06-11 08:52
yunj1105
Rank: 1
等 级:新手上路
威 望:1
帖 子:757
专家分:0
注 册:2007-2-13
得分:0 
哦 谢谢

2007-06-11 09:17



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-146400-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 2.188783 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved