| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 517 人关注过本帖
标题:[求助]一个查询不会
只看楼主 加入收藏
hanxuema
Rank: 1
等 级:新手上路
帖 子:21
专家分:0
注 册:2006-7-28
收藏
 问题点数:0 回复次数:5 
[求助]一个查询不会

drop table stu --删除表

create table stu --创建表
(
Name varchar(20),
Age int not null,
语文 int,
数学 int,
英语 int,
总分 int,
level varchar(8)
)

--添加数据
insert into stu(name,Age,语文,数学,英语) values('alle',18,85,75,80)
insert into stu(name,Age,语文,数学,英语) values('jack',17,75,85,90)
insert into stu(name,Age,语文,数学,英语) values('hella',19,75,80,80)
insert into stu(name,Age,语文,数学,英语) values('errla',20,90,85,95)


select * from stu --查询表
update stu set 总分 = 语文+数学+日语

declare @result int
declare @lev varchar(8)
update stu set level = @lev
set @lev=
case
when(@result > 250) then 'A'
when(@result < 251 and @result > 230) then 'B'
when(@result < 231 and @result > 210) then 'C'
when(@result < 211 and @result > 190) then 'D'
else ' 不及格'
end

这是我写的 后面的一部分是错的... 不知道怎么改...

做一个学生的表

name age 语文 数学 英语 总分 level
1 peter 18 95 97 96 88 a
2 mary 19 95 97 96 88 a
3 jack 20 95 97 96 88 a
4 lucia 18 95 97 96 88 a


谢谢大家

搜索更多相关主题的帖子: 查询 
2006-08-31 17:25
yhxyh
Rank: 1
等 级:新手上路
帖 子:27
专家分:0
注 册:2006-8-28
收藏
得分:0 
select name,语文,数学,英语,总分=(语文+数学+英语) ,level=
(CASE
when (语文+数学+英语) >= 250 then 'A'
when (语文+数学+英语)<250 and (语文+数学+英语) > 230 then 'b'
when (语文+数学+英语)<230 and (语文+数学+英语)>210 then'c'
when (语文+数学+英语)<210 and (语文+数学+英语)>190 then 'd'
else '不及格'
end)
from stu
2006-09-01 15:09
潇洒老乌龟
Rank: 5Rank: 5
等 级:贵宾
威 望:18
帖 子:407
专家分:0
注 册:2005-12-13
收藏
得分:0 

SQL语句之普通行列转换

假设有张学生成绩表(tb_rowtocol)如下
Name Subject Result
张三 语文  73
张三 数学  83
张三 物理  93
李四 语文  74
李四 数学  84
李四 物理  94

想变成
姓名 语文 数学 物理
张三 73  83  93
李四 74  84  94

declare @sql varchar(4000)
set @sql = 'select Name as ' + '姓名'
select @sql = @sql + ' , sum(case Subject when '''+Subject+''' then Result end) ['+Subject+']'
from (select distinct Subject from rowtocol) as a
set @sql = @sql + ' from rowtocol group by name'
exec(@sql)

如果上述两表互相换一下:即
表名(cj)
姓名 语文 数学 物理
张三 73  83  93
李四 74  84  94

想变成

Name Subject Result
张三 语文  73
张三 数学  83
张三 物理  93
李四 语文  74
李四 数学  84
李四 物理  94

select 姓名 as Name,'语文' as Subject,语文 as Result from CJ union
select 姓名 as Name,'数学' as Subject,数学 as Result from CJ union
select 姓名 as Name,'物理' as Subject,物理 as Result from CJ
order by 姓名 desc


乌龟学堂http://www. 承接各种软件开发、系统集成、网络搭建。 QQ:124030710
2006-09-02 22:21
潇洒老乌龟
Rank: 5Rank: 5
等 级:贵宾
威 望:18
帖 子:407
专家分:0
注 册:2005-12-13
收藏
得分:0 

行列转换加合计

例如有表A某些人每月消费数据如下:
id data month
001 11 1
001 12 2
001 13 3
001 14 4
001 15 5
001 16 6
001 17 7
001 18 8
001 19 9
001 110 10
001 111 11
001 112 12
002 21 1
002 22 2
002 23 3
002 24 4
002 25 5
002 26 6
002 27 7
002 28 8
002 29 9
002 210 10
002 211 11
002 212 12
要实现如下结果:



第一个:

SELECT id as '人员' ,
SUM(CASE month WHEN 1 THEN data ELSE 0 END) AS '1月' ,
SUM(CASE month WHEN 2 THEN data ELSE 0 END) AS '2月' ,
SUM(CASE month WHEN 3 THEN data ELSE 0 END) AS '3月' ,
SUM(CASE month WHEN 4 THEN data ELSE 0 END) AS '4月' ,
SUM(CASE month WHEN 5 THEN data ELSE 0 END) AS '5月' ,
SUM(CASE month WHEN 6 THEN data ELSE 0 END) AS '6月' ,
SUM(CASE month WHEN 7 THEN data ELSE 0 END) AS '7月' ,
SUM(CASE month WHEN 8 THEN data ELSE 0 END) AS '8月' ,
SUM(CASE month WHEN 9 THEN data ELSE 0 END) AS '9月' ,
SUM(CASE month WHEN 10 THEN data ELSE 0 END) AS '10月' ,
SUM(CASE month WHEN 11 THEN data ELSE 0 END) AS '11月' ,
SUM(CASE month WHEN 12 THEN data ELSE 0 END) AS '12月'
FROM a
GROUP BY ID

第二个:

SELECT id as '人员' ,
SUM(CASE month WHEN 1 THEN data ELSE 0 END) AS '1月' ,
SUM(CASE month WHEN 2 THEN data ELSE 0 END) AS '2月' ,
SUM(CASE month WHEN 3 THEN data ELSE 0 END) AS '3月' ,
SUM(CASE month WHEN 4 THEN data ELSE 0 END) AS '4月' ,
SUM(CASE month WHEN 5 THEN data ELSE 0 END) AS '5月' ,
SUM(CASE month WHEN 6 THEN data ELSE 0 END) AS '6月' ,
SUM(CASE month WHEN 7 THEN data ELSE 0 END) AS '7月' ,
SUM(CASE month WHEN 8 THEN data ELSE 0 END) AS '8月' ,
SUM(CASE month WHEN 9 THEN data ELSE 0 END) AS '9月' ,
SUM(CASE month WHEN 10 THEN data ELSE 0 END) AS '10月' ,
SUM(CASE month WHEN 11 THEN data ELSE 0 END) AS '11月' ,
SUM(CASE month WHEN 12 THEN data ELSE 0 END) AS '12月' ,
SUM(data) as '合计'
FROM a
GROUP BY ID


乌龟学堂http://www. 承接各种软件开发、系统集成、网络搭建。 QQ:124030710
2006-09-02 22:22
xiyangyu
Rank: 1
等 级:新手上路
帖 子:142
专家分:0
注 册:2006-8-31
收藏
得分:0 
真是学了不好见识!

天行健,君子以自强不息;地势坤,君子以厚德载物。
2006-09-06 11:31
huazisoft
Rank: 1
等 级:新手上路
帖 子:127
专家分:0
注 册:2006-9-4
收藏
得分:0 
好麻烦!!1

如果你是深藏不露的编程高手,www..cn不仅让你有一展身手的好机会,更能赢得一份额外收入!
2006-09-06 15:31
快速回复:[求助]一个查询不会
数据加载中...
 
   



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

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