帮朋友写的一个累计SQL代码,有分季度,和总累计

原创 2016年01月14日 09:40:52
--创建示例表
Create Table T1
(_Date Varchar(10),RunTime INT)
Go
Insert T1 (_Date,RunTime)
  Values ('2015.04',10),('2015.05',20),('2015.06',30),('2015.07',40),('2015.08',25),('2015.09',35),('2015.10',15),('2015.11',55)

--注意在字符串中,月份以 04、05表示,否则会影响后续的计算顺序,比如字符串 '2015.4'>'2015.11',但实际上4月要小于11月

 Go

--以视图方式实现,以方便下游当成表来提取数据
Create View dbo.vT1
As
  With C As
  (Select _Date,LEFT(_Date,4) as YY,(Cast(Right(_Date,2) as Int)-1)/3+1 as Qt,RunTime,
          ROW_NUMBER() OVER (ORDER BY _Date) as RN
     From dbo.T1)
  Select _Date,RunTime,
         (Select Sum(RunTime) as A From C as C2 Where YY=C.YY and Qt=C.Qt and RN<=C.RN) as A,
         (Select Sum(RunTime) as A From C as C3 Where RN<=C.RN) as B
   From C
Go
Select * From dbo.vT1 Order By _Date

GO

--以SP实现,像报表一样
Create Procedure RepData
As
 Declare @A INT=0,@B INT=0,@Qt INT=0
 Select _Date,(Cast(Right(_Date,2) as Int)-1)/3+1 as Qt, --季度值
        RunTime,@A as A,@B as B INTO #T
   From T1
 --建聚集索引是为了排序
 Create Clustered Index CX_T_99999 On #T (_Date)
 --逐行更新累计值
 Update #T
   Set @A=Case When @Qt=Qt Then @A+RunTime Else RunTime End,
       @B=@B+RunTime,
       A=@A,B=@B,@Qt=Qt
 Select _Date,RunTime,A,B
   From #T Order By _Date
Go

--执行:
Exec RepData


SQL Server 2008及以上版本支持,2005/2000得再调整下

朋友写的一个中国象棋游戏,JAVA代码

朋友写的一个中国象棋游戏,JAVA代码。有兴趣的可以这里下载:中国象棋下载 (1)地址,不知现在还能下否。。。。中国象棋历史悠久,吸引了无数的人研究,现对中国象棋的对战和实现棋谱的制作做如下的设计和说...

最近在写导出excel表格的代码,发现网上大部分代码都是导出简单格式的excel,所以自己顺便就写了一个导出复杂表格的工具类,有些代码是借鉴网友的,同时也谢谢分享代码的朋友们.

最近在写导出excel表格的代码,发现网上大部分代码都是导出简单格式的excel,所以自己顺便就写了一个导出复杂表格的工具类,有些代码是借鉴网友的,同时也谢谢分享代码的朋友们....

帮朋友优化一SQL---表重复全扫

昨日,一朋友让我帮看个语句,原因是那个语句 写得过长,语句不容易理解,很多地方全表扫描了。。。。。 源SQL: SELECT A.NAME, (SELECT COUNT(DISTI...
  • wyan117
  • wyan117
  • 2012年08月03日 10:04
  • 497

mysql 按月分组累计统计数据,纯sql实现的一个方法

在网上查阅了很多方法,我尝试了用后台java mysql 按月分组累计统计数据,想得到如下的结果,如下图: 【year_and_month】- 显示按月分组查询的字段 【count_per_mo...

一个不太熟的朋友老托我帮她网购 烦死了

有个朋友,我妈单位新来的一妹纸,因为很少去我妈单位,所以不是经常见面。偶尔会在微信上聊聊。   朋友自己也会网购,大多是在可以货到付款的网站购买,但最近总是在淘宝买衣服,还是那种不支持货到付款那种,...

实现过程全纪录——自己写一个“微信朋友圈”(包括移动端与PC端)_0

一.朋友圈的基本单元——动态       首先定义一个自定义控件用来显示每条动态。 二.运行效果        三.核心解读       PushedMessage 有个PushInde...

给朋友写的一个struts2搭建步骤

创建一个web工程,搭建struts2.0开发环境 第一步:导入Struts 2.0类包文件 将以下包拷入web-inf---lib目录 commons-logging-1.0.4.jar...

初学编程 自己用Qt写的一个象棋界面、没有智能 没有限制旗子的 走法,递归 也有问题、有兴趣的朋友麻烦指导下、很长。。。没有积分也下不了其他的高手用Qt写的象棋、很多的不足、期待大家的意见

#ifndef CHESS_H #define CHESS_H #include #include #include #include #include #include class ...

实现过程全纪录——自己写一个“微信朋友圈”(包括移动端与PC端)

一.朋友圈的基本单元——动态       首先定义一个自定义控件用来显示每条动态。 二.运行效果        三.核心解读       PushedMessage 有个PushInde...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:帮朋友写的一个累计SQL代码,有分季度,和总累计
举报原因:
原因补充:

(最多只允许输入30个字)