SQl中WITH与sum的小秘密!
来源:互联网 发布:口腔溃疡漱口水知乎 编辑:程序博客网 时间:2024/04/28 16:59
在Sql2005以上的版本提供了With 关键字的以实现的递归的应用。同时,在sum(字段) over(partition by 字段1)也有着比较多的应用范围。
在这里以一个客户的销售记录为基础的应用,以便计算出累计与合计
数据例表如下:
create table SaleRecord( cCusName varchar(1), /*客户名称*/ m int, /*月份*/ imoney money /*金额*/)
数据范例如下:
数据显示要求:按月,按客户体现当月金额,累计金额以及总计金额
with Record as (select m,ccusname,imoney,imoney as lj from salerecord where m=1 /*数据初始*/union allselect sr.m,sr.ccusname,sr.imoney,sr.imoney+r.lj from record rinner join salerecord sr on r.m+1=sr.m and r.ccusname=sr.ccusname/*其它月份,特别是sr.imoney+r.lj进行累计*/)select M,CCUSNAME,SUM(IMONEY) OVER (PARTITION BY M,CCUSNAME) AS IMONEY,/*当月金额*/lj,/*累计金额*/SUM(IMONEY) OVER (PARTITION BY CCUSNAME) AS TOTAL /*总计金额*/from Record ORDER BY CCUSNAME,M
效果
这种方式较为方便,灵活应用可以形成更为丰富地应用效果。同时,With形成的递归中不能进行乘法运算;在递归过程中,支持变量与常量的累计;
这种方式在SqlServer 2005以上版本支持。
0 0
- SQl中WITH与sum的小秘密!
- Java中final的小秘密
- Android 中String的小秘密
- SQL语句中SUM与COUNT的区别
- SQL语句中SUM与COUNT的区别深入分析
- GRUB的小秘密
- GOOGLE的小秘密
- Google的小秘密
- 身体的小秘密
- mfc的小秘密
- windowsXP的小秘密
- Firefox的小秘密
- iostream的小秘密
- @Override的小秘密
- QQ的小秘密
- 内存条的小秘密
- MySQL中alter小秘密
- sql 中with的用法
- 第一次学习信息安全的心得
- 春夏流行英伦风休闲皮鞋 男士尖头皮鞋搭配打造品位潮男
- xss攻击
- 常用dos命令
- 补码,余码
- SQl中WITH与sum的小秘密!
- 思科二进制游戏玩法与技巧
- linux 学习当中问题集锦(持续更新,如有大神可帮忙解决其中的为解决问题)
- C语言面试
- 赵艳丽谈下自己的一些经历和一个项目
- 13.罗马数字转化为阿拉伯数字1-3999
- 数字二进制表示中1的个数
- HDU 4635 Strongly connected
- BCS百度云存储无法创建bucket解决篇 以及API接口的使用