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

刚开始只做了统计信息:

如下图

请看最后一列的数据。

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

alter PROCEDURE spread_GetAuthoInfoByStatistics(
@Count int
)
AS
SET NOCOUNT ON;
BEGIN
DECLARE @hitsHistory INT
if(@Count=0)
begin
SELECT @hitsHistory=COUNT(1) FROM dbo.AuthinfoAct ;WITH TempTable
AS (
SELECT YEAR(AddTime) [Year],COUNT(1) AS Total--, @hitsHistory,@hitsHistory+COUNT(1)
FROM dbo.AuthinfoAct
GROUP BY YEAR(AddTime)
) SELECT A.Year, A.Total, SUM(B.Total) AcumulateTotal
FROM TempTable A, TempTable B
WHERE A.Year>=B.Year
GROUP BY A.Year,A.Total order by A.Year
end
else
begin
SELECT @hitsHistory=COUNT(1) FROM dbo.AuthinfoAct WHERE YEAR(AddTime) != YEAR(GETDATE());
WITH TempTable
AS (
SELECT MONTH(AddTime) [Month],COUNT(1) AS Total--, @hitsHistory,@hitsHistory+COUNT(1)
FROM dbo.AuthinfoAct
WHERE YEAR(AddTime) = YEAR(GETDATE())
GROUP BY MONTH(AddTime)
) SELECT A.[Month], A.Total, SUM(B.Total) +@hitsHistory AcumulateTotal
FROM TempTable A, TempTable B
WHERE A.[Month]>=B.[Month]
GROUP BY A.[Month],A.Total
end
END
GO

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

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

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

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

如下:

var Num = 0;
for (int i = 0; i < models.Count; i++)
{
if (i == 0)
{
<tr>
<td class="edit">@models[i].Item2</td>
<td>@models[i].Item1</td>
<td>@models[i].Item3</td>
<td>@(models[i].Item1+visitHis.Value)
@{ Num = models[i].Item1 + visitHis.Value;}
</td>
</tr>
}
else
{
<tr>
<td class="edit">@models[i].Item2</td>
<td>@models[i].Item1</td>
<td>@(models[i].Item1 + Num)
@{ Num = models[i].Item1 + Num;}
</td>
</tr>
}
}

还是先处理数据好啊。

每天努力一点之SQL的更多相关文章

  1. 每天努力一点之SQL(二) count sum case when then group by

    1. select sum(CASE WHEN A.[STATUS]=0 THEN 1 ELSE 0 end) as a1,  sum(CASE A.[STATUS] WHEN 1 THEN 1 EL ...

  2. hdf第一周完了,突然时间静止.,醒了就早点去公司上班,再努力一点

    周一要了个任务,做评价完成,分享完成的页面,做到周四发现可能做不出来,找dzy,逻辑比较混乱,想要放弃了,感觉自己非常没用.昨天跟豆聊了一下,否定自己是一点意义也没有的,觉得自己很差劲,无助的感觉跟初 ...

  3. c#Winform程序调用app.config文件配置数据库连接字符串 SQL Server文章目录 浅谈SQL Server中统计对于查询的影响 有关索引的DMV SQL Server中的执行引擎入门 【译】表变量和临时表的比较 对于表列数据类型选择的一点思考 SQL Server复制入门(一)----复制简介 操作系统中的进程与线程

    c#Winform程序调用app.config文件配置数据库连接字符串 你新建winform项目的时候,会有一个app.config的配置文件,写在里面的<connectionStrings n ...

  4. 复杂一点的SQL语句:Oracle DDL和DML

    DDL:对表或者表的属性进行了改变 create:创建表创建用户创建视图 创建表 create table student(id int,score int) ; student后面与括号之间可以有空 ...

  5. 在SQL中使用PL/SQL函数存在的问题

    -----------------------------Cryking原创------------------------------ -----------------------转载请注明出处, ...

  6. SQL SERVER数据库新认识的一些基础知识

    最近要接触sql server的存储过程啦,在处理更加复杂的逻辑过程前,就来看一下这些sql的基础语法,感觉看啦一些复杂一点的sql语句,突然发现我是有多么的薄弱啊,所以在一些基础的语法上面我再重新整 ...

  7. SQL Server 批量主分区备份(Multiple Jobs)

    一.本文所涉及的内容(Contents) 本文所涉及的内容(Contents) 背景(Contexts) 案例分析(Case) 方案一(Solution One) 方案二(Solution Two) ...

  8. sql 索引 的建立

    (From:http://54laobaixing.blog.163.com/blog/static/57843681200952411133121/) 假设你想找书中的某一个句子.你可以一页一页地逐 ...

  9. SQL Developer报错:Unable to find a Java Virtual Machine解决办法

    安装了64位的Oracle数据库以及32位的Oracle客户端,在开始菜单中第一次打开客户端的SQL Developer时提示输入java.exe的路径,我选择了Oracle数据库自带的jdk路径,确 ...

随机推荐

  1. Copy xml 文件

    public static void copyFailFile(String bugID) throws Exception { File file = new File(".") ...

  2. iOS安全攻击和防御(24):敏感的保护方案逻辑(1)

    iOS安全攻击和防御(24):敏感的保护方案逻辑(1) Objective-C代码easy被hook.暴露信息太赤裸裸,为了安全,改用C来写吧! 当然不是所有代码都要C来写,我指的是敏感业务逻辑代码. ...

  3. ActiveReports 9 新功能:创新的设计分层报告

     在最新的ActiveReports 9报表控件添加了几个新功能,为了帮助您创建一个漂亮的外观在较短的时间内.强大的报表系统.本文重点讨论创新的分层设计报告,分组报告内容管理和设计,于实现报表套打 ...

  4. SQL Server 2008备份数据库失败,拒绝访问的原因

    原文:SQL Server 2008备份数据库失败,拒绝访问的原因 备份数据到特定目录是出现拒绝访问,然后测试备份到C盘根目录正常. 查了下原因: 是因为那个目录没有Authenticated Use ...

  5. nginx 301跳转到带www域名方法rewrite(转)

    首先一.得在你的域名管理里面定义 test.com和www.test.com指向你的主机ip地址,我们可以使用nslookup命令测试:直接输入 nslookup test.com和nslookup ...

  6. Nginx使用ngx_zeromq模块返回502错误的解决方法

    /*********************************************************************  * Author  : Samson  * Date   ...

  7. Cocos2d-x发展---更改父的颜色、透明度的子节点上

    标题手段:当我们改变父节点或透明时的颜色.默认是不会影响孩子的节点. 作为交换组看到朋友说可以通过设置相关的参数变化的子节点来实现属性的效果,看了看源代码,记录下来:        引擎版本号为:2. ...

  8. 作为一个.net程序猿,需要掌握这些有点前途的人才,一些开发---Shinepans

    1.基础 C#基础                    参考书目:   <c#入门经典>         <ASP.NET揭秘> IIS  HTML              ...

  9. linux 除了某个文件或某个目录以外所有删除

    rm `ls | grep -v "aa"`    //删除除带aa字符串的全部文件 ls | grep -v keep | xargs rm //除keep字符串的以外全删除 r ...

  10. windows phone 获取手机图片库中图片(4)

    原文:windows phone 获取手机图片库中图片(4) 前置条件:手机和电脑未连接或连接电脑Zune软件关闭(与Zune软件连接时不允许访问图片库): 版本7.1 获取手机图片库图片的两种方式: ...