sql时间格式转换yyyymm_行列转换的魅力

本文主要是讲一下行列转换,也就是大家经常讲的交叉表查询。

行列转换在实际的应用中非常的实用,可以大大的减少工作量。

很多时候,在Excel中处理数据时,我们需要统计每个月的销量或者需要填写每个月的销量,如下图 :

e346f206152a0f241c625828ef9ea5c9.png

图中只输入了4个月,如果需要5月份的数据,那就要手工的添加“5月”这一列,如果需要6月份数据,那就要手工添加“6月”这一列,以此类推,月份还好也就12个月,那如果是按周呢?且不说表结构是否合理,但这个工作量可想而知道。

像这样的操作还有好多人在使用,且“乐此不疲”的使用,在Excel操作还好,但Access中操作起来就比较麻烦了!

这个时候,我们就需要用行列转换的方式来解决这个问题了。

首先,表设计时,我们就需要调整一下表的结构,如下图:

cac3ea389e89b371d4c8c43825fc4f97.png

接下去我们利用交叉表查询

ac624c89abd2b5b168955be94145cc81.png

SQL语句:

TRANSFORM sum(应收款) AS 应收款之合计

SELECT 客户, sum(应收款) AS 应收款合计

FROM tbl月度应收款统计

GROUP BY 客户

PIVOT Format(月度,"yyyymm");

结果:

08326d93abe946cdbdb26ec38f7657aa.png

当然也可以固定12个月

TRANSFORM sum(应收款) AS 应收款之合计

SELECT 客户, sum(应收款) AS 应收款合计

FROM tbl月度应收款统计

GROUP BY 客户

PIVOT Format(月度,"MM") In ('01','02','03','04','05','06','07','08','09','10','11','12');

结果:

0f51d22c0e9038c4be160b18a19bbd0c.png

好了,大家快去试一下吧。

更多请关注我们的公众号

6eb917a5fde5cf378ab14140e2702bd3.png
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值