【问题标题】:Comparision of data available in one table using Select Query in asp在asp中使用Select Query比较一个表中可用的数据
【发布时间】: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 &quot;Direct&quot;, 

Rly FROM  PunctualityMain  

WHERE  Rly IN ('CR', 'ER', 'ECR', 'ECoR', 'NR', 'NCR', 'NER', 'NFR', 'NWR', 'SR', 'SCR', 'SER', 'SECR', 'SWR', 'WR', 'WCR') AND Date &gt;= '4/1/2012' AND Date &lt;= '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


【解决方案1】:

根据我们上面的讨论,您可以像这样编写您的 t-sql 查询:

SELECT SUM(case when Dir_Ind = 'Dir' and Date between '4/1/2012' and '4/30/2012' then 1 else 0 end ) AS 'CurrentDirect', 
       SUM(case when Dir_Ind = 'Dir' and Date between '3/1/2012' and '3/31/2012' then 1 else 0 end ) AS 'PreviousDirect', 
       Rly
FROM  PunctualityMain  
WHERE  Rly IN ('CR', 'ER', 'ECR', 'ECoR', 'NR', 'NCR', 'NER', 'NFR', 'NWR', 'SR', 'SCR', 'SER', 'SECR', 'SWR', 'WR', 'WCR') 
 AND Date >= '3/1/2012' AND Date <= '4/30/2012'
GROUP BY Rly

这样您可以将 GridView 的数据源设置为结果输出。您可以在 t-sql 或 GridView 的 RowDataBound 事件中计算改善和恶化列。

【讨论】:

  • 它的工作。谢谢。还有一件事……它也可以与选择参数一起使用吗?
  • 不客气。明显地。例如,在此示例中,您可以将 CurDateFrom、CurDateTo、PrevDateFrom、PrevDateTo 参数添加到命令对象。此外,您可以根据用户提供的 CurDateFrom 和 CurDateTo 值来制作 PrevDateFrom 和 PrevDateTo。
  • 有关将 SelectParameters 添加到数据源的示例,请参阅msdn.microsoft.com/en-us/library/…
猜你喜欢
  • 2014-05-28
  • 2011-06-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-01-09
  • 1970-01-01
相关资源
最近更新 更多