【发布时间】:2013-04-26 18:00:49
【问题描述】:
尊敬的所有成员,我在一个 SQL 表中有大约两年的数据,并使用 Select query 命令为该数据填充了一个网格视图(一个月)
<asp:SqlDataSource ID="SqlDataSource15" runat="server"
ConnectionString="<%$ ConnectionStrings:PunctualitymainConnectionString2 %>" SelectCommand="SELECT SUM(case when Dir_Ind = 'Dir' then 1 else 0 end ) AS "Direct",
Rly FROM PunctualityMain
WHERE Rly IN ('CR', 'ER', 'ECR', 'ECoR', 'NR', 'NCR', 'NER', 'NFR', 'NWR', 'SR', 'SCR', 'SER', 'SECR', 'SWR', 'WR', 'WCR') AND Date >= '4/1/2012' AND Date <= '4/30/2012'
GROUP BY Rly"></asp:SqlDataSource>
gridview 是这样的
Rly Direct
CR 5
ER 7
ECR 2
现在,我想将此网格视图显示为比较语句(月份与上一年同月相比),包括 %Improvement / Deterioration。像这样的东西
Rly Current month Direct Previous month Direct %Improvement / Deterioration
CR 5 8 37.5
ER 7 6 -16.6
ECR 2 2 0.0
有可能吗?如果是,请告知,如何轻松实现?
【问题讨论】:
-
我在这种情况下所做的是:在查询的不同列中获取两个月的数据(即当前和上一个)。 (使用 case when then 语句)。然后将分布式列绑定到 GridView 变得非常容易。改进和恶化列可以从后面的 .net 代码中计算出来
-
先生,您能按照上面的建议在这里为解决方案编写一些代码吗?
-
如果你还需要样品,我会在晚上发帖。
标签: asp.net sql-server select gridview