【问题标题】:Add subtotals to Gridview & percentage difference将小计添加到 Gridview 和百分比差异
【发布时间】:2014-12-16 09:20:33
【问题描述】:

我有一个从 SQL 语句派生的 gridview。我现在想显示每一列的小计,然后显示两个日期范围之间的总体百分比增加/减少。我该怎么办?

        <%@ Page Title="" Language="C#" MasterPageFile="~/MasterPage.Master" AutoEventWireup="true" CodeBehind="Sales-Comparison.aspx.cs" Inherits="TowelsRusV3.Sales_Comparison" %>
        <asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">
            <div class="panel panel-info">
          <div class="panel-heading">
              <h1 class="panel-title text-center">Sales Comparison</h1>

          </div>
          <div class="panel-body">
           <div class="row">
               <div class="col-lg-8">
                             <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataSourceID="SqlDataSource1" CssClass="table table-bordered table-responsive table-striped" OnSelectedIndexChanged="GridView1_SelectedIndexChanged" ShowFooter="True">
                      <Columns>
                          <asp:BoundField DataField="OrderDate" HeaderText="OrderDate" ReadOnly="True" SortExpression="OrderDate" />
                          <asp:BoundField DataField="Total2014" HeaderText="Total2014" ReadOnly="True" SortExpression="Total2014" />
                          <asp:BoundField DataField="Total2013" HeaderText="Total2013" ReadOnly="True" SortExpression="Total2013" />
                          <asp:BoundField DataField="Difference" HeaderText="Difference" ReadOnly="True" SortExpression="Difference" />
                      </Columns>
                  </asp:GridView>
                  <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:LiveDataV2ConnectionString %>" SelectCommand="SELECT 
        Table2014.OrderDate,
        isnull(Table2014.Total,0) as Total2014,
        isnull(Table2013.Total,0) as Total2013,
        isnull(Table2014.Total,0)-isnull(Table2013.Total,0) as Difference

        FROM 
               (SELECT SUM(order_header_total.oht_net) AS Total,
               dateadd(day,0,DATEDIFF(d,0,order_header.oh_datetime)) as OrderDate
               FROM order_header_total
               INNER JOIN order_header ON order_header_total.oht_oh_id = order_header.oh_id
               WHERE (order_header.oh_datetime BETWEEN '12/01/2014' AND '12/31/2014') 
               AND order_header.oh_os_id IN (1, 6, 4)
               GROUP BY dateadd(day,0,DATEDIFF(d,0,order_header.oh_datetime))) Table2014

        LEFT OUTER JOIN
               (SELECT SUM(order_header_total.oht_net) AS Total,
               dateadd(year,1,dateadd(day,0,DATEDIFF(d,0,order_header.oh_datetime))) as OrderDate
               FROM order_header_total
               INNER JOIN order_header ON order_header_total.oht_oh_id = order_header.oh_id
               WHERE (order_header.oh_datetime BETWEEN dateadd(year,-1,'12/01/2014') AND dateadd(year,-1,'12/31/2014'))
               AND order_header.oh_os_id IN (1, 6, 4)
               GROUP BY dateadd(year,1,dateadd(day,0,DATEDIFF(d,0,order_header.oh_datetime)))) as Table2013 On Table2013.OrderDate = Table2014.OrderDate

        order by Table2014.OrderDate"></asp:SqlDataSource>
                   </div>
               </div>
              </div>
                </div>
        </asp:Content>

【问题讨论】:

    标签: c# sql asp.net gridview percentage


    【解决方案1】:

    您应该能够在您的选择语句的末尾添加一个类似于

    的新列
    sum(table_a.col1) + sum(table_b.coly) as SubTotal
    

    然后对你的百分比列做同样的事情,只是弄清楚如何计算百分比。

    【讨论】:

    • 感谢您的帮助。
    猜你喜欢
    • 2020-11-27
    • 2021-06-17
    • 2021-01-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多