求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
...全文
57 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
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

22,206

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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