HTML5技术

你真的会玩SQL吗?玩爆你的数据报表之存储过程编写(上) - 欢醉(3)

字号+ 作者:H5之家 来源:博客园 2015-11-19 16:25 我要评论( )

注意这里用到了滑动累计聚合m.YearMonth=n.YearMonth(不懂滑动累计聚合请看之前的系列) ,利用子查询统计出 每个产品到当月为止的累计销售面积,累积销售金额,再联接#ProductSaleArea 更新每个产品的累积销售面

注意这里用到了滑动累计聚合 m.YearMonth<=n.YearMonth(不懂滑动累计聚合请看之前的系列) ,利用子查询统计出 每个产品到当月为止的累计销售面积,累积销售金额,再联接 #ProductSaleArea 更新每个产品的累积销售面积比例。

部分数据如图:

 

从表#TempSaleDtl 列转行,转换后的表只有 产品、统计类型、日期,值4列;(每个产品对应的0-12、13 月对应的值) 放入表#tempSaleDtl2

#tempSaleDtl2 FROM ( type,typecode,YearMonth,MAX(SaleNum) AS val FROM #TempSaleDtl GROUP BY ProductGUID,YearMonth ProductGUID,type,typecode,YearMonth,MAX(SaleArea) AS val FROM #TempSaleDtl GROUP BY ProductGUID,YearMonth ProductGUID,type,typecode,YearMonth,MAX(SalePrice) AS val FROM #TempSaleDtl GROUP BY ProductGUID,YearMonth ProductGUID,type,typecode,YearMonth,MAX(SaleAmount) AS val FROM #TempSaleDtl GROUP BY ProductGUID,YearMonth ProductGUID,type, typecode,YearMonth,SUM(ljSaleArea) FROM #TempSaleDtl GROUP BY ProductGUID,YearMonth ProductGUID,type, typecode,YearMonth,SUM(blSaleArea) FROM #TempSaleDtl GROUP BY ProductGUID,YearMonth ProductGUID,type, typecode,YearMonth,SUM(ljSaleAmount) FROM #TempSaleDtl GROUP BY ProductGUID,YearMonth ) t

部分数据如图:

这里用到的列转行,共有7列,技巧为用code来代表每个类型,也用于显示排序,最终数据为每个产品每个月都有7行数据。这里是不是有了最终结果的雏形?

   

  至此 你真的会玩SQL吗?玩爆你的数据报表之存储过程编写 上篇先写到这,对于看不懂的建议先建立数据库,然后自己一步步试着理下思路,试着写。

这里留个作业,如何将上面的数据转化为下图中的格式呢?

 

敬请期待下篇,未完待续……

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • 成为全栈工程师真的好吗? - 栈客

    成为全栈工程师真的好吗? - 栈客

    2016-04-19 16:00

  • 再次推荐一款逼真的HTML5下雪效果 - roucheng

    再次推荐一款逼真的HTML5下雪效果 - roucheng

    2016-03-28 15:39

网友点评
i