我的目标: 让中国的大学生走出校门的那一刻就已经具备这些Office技能,让职场人士能高效使用Office软件为其服务。支持我,也为自己加油!
微语: 不论面对怎样的世界,都要保持安闲适意的自我。
本节分享SQL中的交叉查询,即利用SQL查询实现数据透视表的效果。 数据源如下:
今天这个案例中想要的效果是二维的格式,说白了和数据透视是一样的。
先看下具体的语句:
transform round(sum(订单金额),2) as 金额
select 姓名 from [订单$]
group by 姓名
pivot 月份
什么意思呢?
对照数据透视表是最好理解的了。
transform round(sum(订单金额),2) as 金额
接下来考虑行字段里要放什么,直接用select写即可,同时我们要用行字段进行分组,所以有了:
transform round(sum(订单金额),2) as 金额
select 姓名 from [订单$]
group by 姓名
最后结果集中想要把数据源中那一列横向显示,即:pivot 月份
综合下就是完整的语句:transform round(sum(订单金额),2) as 金额
select 姓名 from [订单$]
group by 姓名
pivot 月份
思考:假如数据源中没有月份这一列,我们还能透视成案例中的效果吗?
transform round(sum(订单金额),2) as 金额
select 姓名 from [订单$]
group by 姓名
pivot Format(日期,"m月")
本节知识点:
1、交叉查询的语法:
TRANSFROM aggfunction
SELECT statement
PIVOT pivotfield [ in (vlaue1 [,value2 [, …]] ) ]
)