create table [流水表]
([姓名] nvarchar(30),
[班级] nvarchar(30),
[备注] nvarchar(30))
([姓名] nvarchar(30),
[一班] int, [二班] int , [三班] int)
insert into [流水表] values('张三', '二班', '备注1'),
('李四', '三班', '备注2'),
('王五', '二班', '备注3'),
('赵六', '一班', '备注4'),
('张三', '一班', '备注5')
insert into [课程代码表] values('张三', 1, 2 ,3 ),
('李四', 4, 5 ,6 ),
('王五', 7, 8 ,9 ),
('赵六', 1 ,2, 3 )
go
---1 行列转换
/
SELECT [姓名],[班级],[课程代码]
from [课程代码表]
unpivot([课程代码] for [班级] in([一班] , [二班] , [三班]))as test
go
/
---2 左连接
select a[姓名],b[课程代码],a[班级],a[备注] from [流水表] as a
left join (
SELECT [姓名],[课程代码],[班级]
from [课程代码表]
unpivot([课程代码] for [班级] in([一班] , [二班] , [三班]))as test
) as b on a[姓名] = b[姓名]
and a[班级] = b[班级]
go
drop table [流水表]
drop table [课程代码表]
下面的句子是由两列分组的例子。
解释:先按部门deptno进行分组,然后在相同部门下再按各经理mgr分组,并取出不同部门、不同经理下的总工资和平均工资。
select deptno,mgr,sum(sal),avg(sal) from EMP group by deptno,mgr;
以上就是关于sql两个表多列联合查询全部的内容,包括:sql两个表多列联合查询、sql如何进行多列分组查询 是什么意思 麻烦写个案例 讲解下 王分感谢、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)