继续求教··· 关于把动态查询的结果合并起来
时间:2011-12-07
来源:互联网
还是那个老例子
这是第一张表
张三 语文 80
张三 数学 86
张三 英语 75
李四 语文 80
李四 数学 85
李四 英语 80
第2张表是
张三 物理 68
张三 化学 88
李四 物理 77
李四 化学 82
2个表都经过动态转换exec(@sql)的那转换并显示出来
第一张表显示出来
语文 数学 英语
张三 80 86 75
李四 80 85 80
第二张表显示出来
物理 化学
张三 68 88
李四 77 82
最后要的效果就是把2个查询结果合并起来变成
语文 数学 英语 物理 化学
张三 80 86 75 68 88
李四 80 85 80 77 82
注意最开始是2张表,哪位能够告诉
这是第一张表
张三 语文 80
张三 数学 86
张三 英语 75
李四 语文 80
李四 数学 85
李四 英语 80
第2张表是
张三 物理 68
张三 化学 88
李四 物理 77
李四 化学 82
2个表都经过动态转换exec(@sql)的那转换并显示出来
第一张表显示出来
语文 数学 英语
张三 80 86 75
李四 80 85 80
第二张表显示出来
物理 化学
张三 68 88
李四 77 82
最后要的效果就是把2个查询结果合并起来变成
语文 数学 英语 物理 化学
张三 80 86 75 68 88
李四 80 85 80 77 82
注意最开始是2张表,哪位能够告诉
作者: asllk 发布时间: 2011-12-07
表设计不合理吧,为什么当初不放在一张表里
作者: pengxuan 发布时间: 2011-12-07
先用
insert into #t
select * from tb1
union all
select * from tb2
两表union all之后存到临时表#t里
然后再对#t进行动态行列转换
insert into #t
select * from tb1
union all
select * from tb2
两表union all之后存到临时表#t里
然后再对#t进行动态行列转换
作者: pengxuan 发布时间: 2011-12-07
把两个表合并起来后再查询?
SQL code
SQL code
declare @sql varchar(8000) set @sql = 'select 姓名 ' select @sql = @sql + ' , max(case 课程 when ''' + 课程 + ''' then 分数 else 0 end) [' + 课程 + ']' from (select distinct 课程 from (select * from tb1 union all select * from tb2) t) as a set @sql = @sql + ' from (select * from tb1 union all select * from tb2) t group by 姓名' exec(@sql)
作者: dawugui 发布时间: 2011-12-07
你这个是一样的道理 先把表UNION ALL 再行转列就可以了
作者: fredrickhu 发布时间: 2011-12-07
两个办法:
1.两张表分别转换,然后连接.
2.用union将两张表合并,再一起转换.
相信行转列的列子楼主已经看过不少了,应该能弄得出来.
1.两张表分别转换,然后连接.
2.用union将两张表合并,再一起转换.
相信行转列的列子楼主已经看过不少了,应该能弄得出来.
作者: qianjin036a 发布时间: 2011-12-07
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28