C# 将单词TOTAL添加到Gridview的最后一行
我有一个动态创建的GridView,我使用sql代码C# 将单词TOTAL添加到Gridview的最后一行,c#,mysql,asp.net,gridview,C#,Mysql,Asp.net,Gridview,我有一个动态创建的GridView,我使用sql代码和ROLLUP来显示列的总数。但是,是否可以在空白单元格中显示单词总分? GridView: <asp:GridView runat="server" id="gvResults" CssClass="tblResults" onrowcre
和ROLLUP
来显示列的总数。但是,是否可以在空白单元格中显示单词总分?
GridView:
<asp:GridView runat="server"
id="gvResults"
CssClass="tblResults"
onrowcreated= "gvResults_RowCreated"
AllowSorting="true"
OnSortCommand="gvResults_Sort"
DataKeyField="ID"
AutoGenerateColumns="true"
Visible =" true">
<HeaderStyle CssClass="tblResultsHeader" />
<AlternatingRowStyle BackColor="#EEEEEE" />
</asp:GridView>
select
c.Name,
COUNT(distinct jn.ID) as Jobs,
sum(case when (select count(jbs.status) from jobstat jbs where jbs.jobid=jn.id and jbs.Status=''DEL'')>0 then 1 else 0 end) as EPOD,
sum(case when (select count(jbs.status) from jobstat jbs where jbs.jobid=jn.id and jbs.Status=''POD'')>0 then 1 else 0 end) as POD,
SUM((select COUNT(ID) from job_debriefs WHERE JobID = jn.ID)) as Debriefs,
FROM customer c
LEFT JOIN job_new jn ON jn.JobOwnerID = c.ID
LEFT JOIN manifestdetails md ON md.JobID = jn.ID and md.ColDelReturn = ''C''
LEFT JOIN manifest man ON md.ManifestID = man.ID
WHERE jn.IsActive = 1 AND c.Company_ID = 12
GROUP BY c.Name WITH ROLLUP
你可以参考。这可能对你有帮助
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
Label Salary = (Label)e.Row.FindControl("lblSalary");
m = m + int.Parse(Salary.Text);
//Table tb = new Table();
}
if (e.Row.RowType == DataControlRowType.Footer)
{
Label lblTotalPrice = (Label)e.Row.FindControl("Salary");
lblTotalPrice.Text = m.ToString();
}
}
您可以使用
GROUPING
SQL函数来确定是否将c.Name
汇总到特定行中:
select
ifnull(c.Name,'TOTAL') as Name,
COUNT(distinct jn.ID) as Jobs,
sum(case when (select count(jbs.status) from jobstat jbs where jbs.jobid=jn.id and jbs.Status=''DEL'')>0 then 1 else 0 end) as EPOD,
sum(case when (select count(jbs.status) from jobstat jbs where jbs.jobid=jn.id and jbs.Status=''POD'')>0 then 1 else 0 end) as POD,
SUM((select COUNT(ID) from job_debriefs WHERE JobID = jn.ID)) as Debriefs,
FROM customer c
LEFT JOIN job_new jn ON jn.JobOwnerID = c.ID
LEFT JOIN manifestdetails md ON md.JobID = jn.ID and md.ColDelReturn = ''C''
LEFT JOIN manifest man ON md.ManifestID = man.ID
WHERE jn.IsActive = 1 AND c.Company_ID = 12
GROUP BY c.Name WITH ROLLUP
但是,请注意,如果原始
c.Name
列中允许空值,则该值也将转换为单词“TOTAL”。据我所知,MySQL中没有解决这个问题的方法(当然除了消除空值)。是的。当然谢谢。我得到错误函数pxp。分组不存在。pxp是数据库的名称对不起,我在这里错误地假设了MSSQL:)已更新查询。