求绩点成绩,请前辈指点!先感谢前辈了!

salecn 2012-12-20 04:20:43
环境:sqlserver2000 +win2003
问题:想让成绩表的绩点字段设置默认值为(60分以下为0分,60及以上绩点为:(成绩-50)/10),当成绩变动后绩点也随之变动。请前辈指导!

成绩表
学号     成绩  绩点
20050001   80 (3)
20050002 95  (4.5)
20050003   40   (0)
20050004   60   (0)

绩点要求:60分以下为0分,60及以上绩点为:(成绩-50)/10
...全文
307 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
-Tracy-McGrady- 2012-12-22
  • 打赏
  • 举报
回复
select 学号,成绩,[绩点]=case when 成绩<60 then 0 else (成绩-50)/10 end from 表 with(nolock) 四楼的应该可以
salecn 2012-12-22
  • 打赏
  • 举报
回复
感谢前辈了!
小马才 2012-12-21
  • 打赏
  • 举报
回复
四楼的没法用啊?是不是用触发器?
sqlkxr 2012-12-20
  • 打赏
  • 举报
回复
除以10 我写成除3了
sqlkxr 2012-12-20
  • 打赏
  • 举报
回复
create table txxx(xh varchar(10),score decimal(3,1),dot as (score-50)/3 )
yy1987316 2012-12-20
  • 打赏
  • 举报
回复
视图是一种方法,计算列也可以做到。
create table 成绩表
(
	学号 varchar(20),
	成绩 decimal(10,1),
	绩点 as case when isnull(成绩,0)<60 then 0 else ((成绩-50)/10) end
)


insert into 成绩表 (学号,成绩) values ('201201',50)
insert into 成绩表 (学号,成绩) values ('201202',80)
select * from 成绩表
SRCS000 2012-12-20
  • 打赏
  • 举报
回复
引用 1 楼 yiyishuitian 的回复:
建议使用视图
支持利用视图

CREATE TABLE test2

(
XH VARCHAR(20),
CJ NUMERIC
)

INSERT INTO test2
SELECT '1','50' UNION ALL
SELECT '2','60' UNION ALL
SELECT '3','13' 

GO
CREATE VIEW vt1 AS SELECT XH "学号",CJ"成绩",(CJ-50)/10 "积点"  FROM test2
GO
SELECT * FROM vt1

DROP  TABLE test2
GO
DROP  VIEW vt1
GO
哥眼神纯洁不 2012-12-20
  • 打赏
  • 举报
回复

select *,case when (convert(float,成绩)-50)/10<0 then 0 else (convert(float,成绩)-50)/10 end as 绩点 from 成绩表
不知道2000能不能用,试下吧
yiyishuitian 2012-12-20
  • 打赏
  • 举报
回复
建议使用视图

34,588

社区成员

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

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