标签:com http blog style class div img code c log t
今天工作当中遇到一个问题:统计信息并导出EXcel 报表。
刚开始只做了统计信息:
如下图

请看最后一列的数据。
我当时想都从数据库里取出来,但是由于我能力有限没有做出来。先贴下后来写的SQL 语句。
| 
       1 
      2 
      3 
      4 
      5 
      6 
      7 
      8 
      9 
      10 
      11 
      12 
      13 
      14 
      15 
      16 
      17 
      18 
      19 
      20 
      21 
      22 
      23 
      24 
      25 
      26 
      27 
      28 
      29 
      30 
      31 
      32 
      33 
      34 
      35 
      36 
      37 
      38 
      39 
      40 
      41  | 
    
      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)
                    {
                        <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>
                    }
                }
还是先处理数据好啊。
标签:com http blog style class div img code c log t
原文地址:http://www.cnblogs.com/sunShineJing/p/3701296.html