求2条查询语句

piaofeng16 2006-03-13 11:15:21
一:
基表BaseCode
Intid Strcaption Intparent
1 学历 0
2 民族 0
3 小学 1
4 初中 1
5 高中 1
6 中专 1
7 大专 1
8 本科 1
9 博士/研究生 1
10 汉族 2
11 藏族 2
12 羌族 2
13 满族 2
14 回族 2
15 维吾尔族 2
16 土家族 2
表person
Intid Strname Inteducationid Intnationid
1 张三 Null 10
2 李四 5 11
3 王五 7 14
4 余六 9 10
请查询上面两张表以得到如下查询结果:
ID 姓名 学历 民族
1 张三 未知 汉族
2 李四 高中 藏族
3 王五 大专 回族
4 余六 博士/研究生 汉族


二、有如下的一张表:
姓名 学科 成绩
张三 语文 85
张三 英语 90
张三 数学 95
李四 语文 80
李四 英语 95
李四 数学 90
王五 语文 90
王五 英语 80
王五 数学 100
请查询以上一张表以得到如下所示格式的查询结果:
姓名 语文 英语 数学
张三 85 90 95
李四 80 95 90
王五 90 80 100
...全文
35 点赞 收藏 4
写回复
4 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
piaofeng16 2006-03-13
一中有问题:
如果:张三的学历为未知也就是
表person中Inteducationid为空或不在表BaseCode字段Intid中
那就查不出这个结果
而要求为插入未知
回复
piaofeng16 2006-03-13
谢谢啊!
回复
huailairen 2006-03-13
create table student(姓名 varchar(10), 学科 varchar(10), 成绩 int)
insert into student values('张三' , '语文' , 85 )
insert into student values('李四', '语文' , 80 )
insert into student values('张三' , '英语' , 85 )
select 姓名,语文=(sum(case 学科 when '语文' then 成绩 else 0 end )) ,英语=(sum(case 学科 when '英语' then 成绩 else 0 end )),数学=(sum(case 学科 when '数学' then 成绩 else 0 end ))
from student
group by 姓名
回复
huailairen 2006-03-13
1.
select a.intid as ID ,a.Strname as 姓名,b.Strcaption as 学历 ,c.Strcaption as 民族
from person a, BaseCode b,BaseCode c
where a.Inteducationid=b.intid and a.Intnationid=c.intid
回复
相关推荐
发帖
疑难问题
创建于2007-09-28

2.1w+

社区成员

MS-SQL Server 疑难问题
申请成为版主
帖子事件
创建了帖子
2006-03-13 11:15
社区公告
暂无公告