在delphi中,有一个表abc,表如下:
ID NAME chengji1 chengji2 chengji3 chengji4 chengji5 total (chengji1到chengji5都是整型)
01 tom 80 90 60 80 68 NULL
02 jay 70 80 NULL NULL 61 NULL
chengji1到chengji5是一个学生的成绩,可能是0分,在数据库中显示是NULL,total是总分,要对total自动求和,就是每输一个成绩,total都会变,如果修改了某一个成绩,total要求更新,如何实现?
谢谢大家。
我用 update abc set total=chengji1+chengji2+chengji3+chengji4+chengji5
ID为01的,total在表中可以看到总分,而ID为02的,因为有NULL,所以就没有结果,还是NULL。
ID NAME chengji1 chengji2 chengji3 chengji4 chengji5 total (chengji1到chengji5都是整型)
01 tom 80 90 60 80 68 NULL
02 jay 70 80 NULL NULL 61 NULL
chengji1到chengji5是一个学生的成绩,可能是0分,在数据库中显示是NULL,total是总分,要对total自动求和,就是每输一个成绩,total都会变,如果修改了某一个成绩,total要求更新,如何实现?
谢谢大家。
我用 update abc set total=chengji1+chengji2+chengji3+chengji4+chengji5
ID为01的,total在表中可以看到总分,而ID为02的,因为有NULL,所以就没有结果,还是NULL。
解决方案 »
- 求宝宝名字
- 如何使用Delphi调用IDM下载文件
- adoquery无法使用select top语句吗?
- 做过套打的兄弟进来看看!
- 高手们帮我看一下下面这段代码怎么执行不起来! (VC的代码,借一下D版的人气啊)
- update问题
- c/s结构程序,多人使用,如果A,B先查询数据库,C在A,B查询后更改了数据库,此时怎么样让A,B查询的结果能及时响应更新?
- 帮我看一下这个问题,还没有人回答就被CSDN挤到后面去了!
- 不看别后悔!!!!!!!!
- 窗口窗口我爱你
- 关于fastreport控件报access violation at address 00000009c,Read of address 00000009c
- 请大家帮帮忙,我要做一个程序,其中要一个短信发送的功能,我想利用飞信或LibFetion,但不知道怎么才能不让飞信的不出现,而能实现发短信这个功能!
update abc set total=nvl(chengji1,0)+nvl(chengji2,0)+nvl(chengji3,0)+nvl(chengji4,0)+nvl(chengji5,0)
如果是sqlserver
update abc set total=isnull(chengji1,0)+isnull(chengji2,0)+isnull(chengji3,0)+isnull(chengji4,0)+isnull(chengji5,0)
要得到 total 值,可使用视图,也可在应用程序中来计算。
在 Delphi 中,在数据集控件(如ADOQuery) 上添加 Calculated 字段,用 OnCalcFields 事件来进行计算十分方便。
建议不要用null代替0分,null可以表示诸如缺考等。可以alter table下,修改default 0…,另外,total冗余。查询的时候直接使用chengji1+chengji2+chengji3+chengji4+chengji5 as total
有道理up
up
--...
update abc set total=chengji1+chengji2+chengji3+chengji4+chengji5