lovewings 发表于 2007-10-8 10:36:05

金仕达的测试面试--SQL

不难的,给找工作的朋友增加自信:)

   语文数学英语
张三56      85       61
李四82      86       90
王五32      61       27

对下面的表里的三人分别求总和,记录在英语列的后面

spinach_xu 发表于 2007-10-8 18:17:54

这样行不?

create table #b
(
name char(10),
kc1 int,
kc2 int,
kc3 int,
)

insert into #b
select 'z3',1,2,3
union all select 'l4',11,22,33
union all select 'w5',111,222,333

select *,sum(kc1+kc2+kc3) as sum from #b group by name,kc1,kc2,kc3

drop table #b

serena_chueng 发表于 2007-10-9 16:51:46

1 modify表结构
2 插入计算值
过程是这样的不?:L

spinach_xu 发表于 2007-10-9 21:16:23

modify表结构?
这个好像不行吧...
违反常规操作...

云层 发表于 2007-10-11 10:42:12

修改表结构
更新记录就可以了。。不用写的那么麻烦,而且好像你那样写也有问题

spinach_xu 发表于 2007-10-11 19:32:01

那就这样
alter table tablename add grade_sum int
update tablename set grade_sum=chinese+math+english

sanmujuno 发表于 2007-10-11 20:45:55

恩.spinach那样就可以了.

alter table tablename add grade_sum int null
update tablename set grade_sum=chinese+math+english

meng0819 发表于 2007-12-1 22:40:26

语文数学英语
张三56      85       61
李四82      86       90
王五32      61       27
select* , 语文+数学+英语 as sumfrom 表名
应该可以的

carry0098 发表于 2007-12-2 00:10:45

select* , 语文+数学+英语 as sumfrom 表名
嗯,这样可以的,而且还避免了修改表文件,
如果用到alter table,好像还要考虑数据库事务的问题吧
;P
页: [1]
查看完整版本: 金仕达的测试面试--SQL