注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

①嗰亽挺ぬ

莈亽噯,僦洎巳噯洎巳

 
 
 

日志

 
 
 
 

mysql 行转列的demo  

2013-11-18 10:35:01|  分类: 数据库操作 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
1、表、视图结构转化  
  现有一个商品销售表sale,表结构为:  
  month    char(6)      --月份
  sell    number(10,2)   --月销售金额  
  现有数据为:  
  200001  1000
  200002  1100
  200003  1200
  200004  1300
  200005  1400
  200006  1500
  200007  1600
  200101  1100
  200202  1200
  200301  1300
  
  想要转化为以下结构的数据:  
  year   char(4)      --年份
  month1  number(10,2)   --1月销售金额
  month2  number(10,2)   --2月销售金额
  month3  number(10,2)   --3月销售金额
  month4  number(10,2)   --4月销售金额
  month5  number(10,2)   --5月销售金额
  month6  number(10,2)   --6月销售金额
  month7  number(10,2)   --7月销售金额
  month8  number(10,2)   --8月销售金额
  month9  number(10,2)   --9月销售金额
  month10  number(10,2)   --10月销售金额
  month11  number(10,2)   --11月销售金额
  month12  number(10,2)   --12月销售金额

实现手段:
SELECT
substr(month,1,4),
sum(if(substr(month,5,2)='01',sell,0)) AS month1,
sum(if(substr(month,5,2)='02',sell,0)) AS month2,
sum(if(substr(month,5,2)='03',sell,0)) AS month3,
sum(if(substr(month,5,2)='04',sell,0)) AS month4,
sum(if(substr(month,5,2)='05',sell,0)) AS month5,
sum(if(substr(month,5,2)='06',sell,0)) AS month6,
sum(if(substr(month,5,2)='07',sell,0)) AS month7,
sum(if(substr(month,5,2)='08',sell,0)) AS month8,
sum(if(substr(month,5,2)='09',sell,0)) AS month9,
sum(if(substr(month,5,2)='10',sell,0)) AS month10,
sum(if(substr(month,5,2)='11',sell,0)) AS month11,
sum(if(substr(month,5,2)='12',sell,0)) AS month12
FROM sale
GROUP BY substr(month,1,4) 
ORDER BY substr(month,1,4)


  评论这张
 
阅读(13)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017