博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
每天努力一点之SQL
阅读量:5163 次
发布时间:2019-06-13

本文共 2025 字,大约阅读时间需要 6 分钟。

今天工作当中遇到一个问题:统计信息并导出EXcel 报表。

刚开始只做了统计信息:

如下图

请看最后一列的数据。

我当时想都从数据库里取出来,但是由于我能力有限没有做出来。先贴下后来写的SQL 语句。

alter PROCEDURE spread_GetAuthoInfoByStatistics(@Count int)ASSET NOCOUNT ON;BEGINDECLARE @hitsHistory INTif(@Count=0)beginSELECT @hitsHistory=COUNT(1) FROM dbo.AuthinfoAct;WITH TempTableAS (SELECT YEAR(AddTime) [Year],COUNT(1)  AS Total--, @hitsHistory,@hitsHistory+COUNT(1)FROM dbo.AuthinfoActGROUP BY YEAR(AddTime) )SELECT A.Year, A.Total, SUM(B.Total)  AcumulateTotalFROM TempTable A, TempTable BWHERE A.Year>=B.YearGROUP BY A.Year,A.Total order by A.YearendelsebeginSELECT @hitsHistory=COUNT(1) FROM dbo.AuthinfoAct WHERE YEAR(AddTime) != YEAR(GETDATE());WITH TempTableAS (SELECT MONTH(AddTime) [Month],COUNT(1)  AS Total--, @hitsHistory,@hitsHistory+COUNT(1)FROM dbo.AuthinfoActWHERE YEAR(AddTime) = YEAR(GETDATE())GROUP BY MONTH(AddTime))SELECT A.[Month], A.Total, SUM(B.Total) +@hitsHistory AcumulateTotalFROM TempTable A, TempTable BWHERE A.[Month]>=B.[Month]GROUP BY A.[Month],A.TotalendENDGO

 看着也挺简单的是吧,但是我当初想的比较麻烦还想到了递归。

下面就说说我第一次怎么做的吧。、

第一次从数据库统计好第一列,第二列的数据。

最后一列的数据我利用代码的方便性写的。

如下:

var Num = 0;                for (int i = 0; i < models.Count; i++)                {                    if (i == 0)                    {                                                    @models[i].Item2                            @models[i].Item1                            @models[i].Item3                            @(models[i].Item1+visitHis.Value)                                @{ Num = models[i].Item1 + visitHis.Value;}                                                                        }                    else                    {                                                    @models[i].Item2                            @models[i].Item1                            @(models[i].Item1 + Num)                                @{ Num = models[i].Item1 + Num;}                                                                        }                }

 还是先处理数据好啊。

转载于:https://www.cnblogs.com/sunShineJing/p/3701296.html

你可能感兴趣的文章
TortoiseSVN tutorial
查看>>
poj-2376 Cleaning Shifts (排序+贪心)
查看>>
mssql 创建触发器
查看>>
2.python数据结构的性能分析
查看>>
DataTables给表格绑定事件
查看>>
jquery操作select(取值,设置选中)
查看>>
图的遍历
查看>>
在Android中自定义捕获Application全局异常,可以替换掉系统的强制退出对话框(很有参考价值与实用价值)...
查看>>
C语言第三次博客作业---单层循环结构
查看>>
DevExpress 程序运行后 layoutView 卡片大小发生变化
查看>>
WPF DevExpress 中GridControl如何设置选中单元格的Style
查看>>
查看python库文档
查看>>
Python网络编程_抓取百度首页代码(注释详细)
查看>>
js动态插入标签代码(insertAdjacentHTML)
查看>>
1.开发准备
查看>>
POJ 1463 树型DP
查看>>
关于SubSonic3.0插件使用SubSonic.Query.Select查询时,字段类型为tinyint时列丢失问题的Bug修复...
查看>>
自动生成小学生四则运算(皮!)
查看>>
rsync 同步
查看>>
centos su命令
查看>>