当前位置:编程学习 > C#/ASP.NET >>

Sql 查询

系别    专业         班级 实习人数
计算机系  信息管理      01班 5
        02班    8
应用技术        01班 5
        02 12
合计:30
生科系 生物学研究 01班 4
        02班 6
        03班 9
化工研究 01班 4
        02班 9
合计:32


查询出来是下面这种结果,怎么让其显示成上面的结果
系别 专业 班级 实习人数
计算机系 信息管理 01班 5
计算机系 信息管理 02班 8
计算机系 应用技术 01班 5
计算机系 应用技术 02 12
生科系 生物学研究 01班 4
生科系 生物学研究 02班 6
生科系 生物学研究 03班 9
生科系 化工研究 01班 4
生科系 化工研究 02 9
Sql 查询 --------------------编程问答-------------------- selet sum(人数)  as num from xxxx group by 系别,专业,班级 --------------------编程问答-------------------- 不是这样的,实习人数是根据班级 查出来的 --------------------编程问答-------------------- 如果在页面显示的话,弄个表格合并得了。 --------------------编程问答-------------------- 相当于是动态合并单元格,该怎么弄 --------------------编程问答-------------------- 怎么动态合并单元格 --------------------编程问答-------------------- 如果要在后台画出这个表,该怎么画 --------------------编程问答--------------------
    /// <summary>
    /// 合并相同内容的 列-
    /// </summary>
    /// <param name="id">列id (需为runat=server的td标签的id)</param>
    protected void MergeTD(string id)
    {
        try
        {
            for (int i = MainRepeater.Items.Count - 1; i > 0; i--)
            {
                HtmlTableCell oCell_previous = MainRepeater.Items[i - 1].FindControl(id) as HtmlTableCell;
                HtmlTableCell oCell = MainRepeater.Items[i].FindControl(id) as HtmlTableCell;

                oCell.RowSpan = (oCell.RowSpan == -1) ? 1 : oCell.RowSpan;
                oCell_previous.RowSpan = (oCell_previous.RowSpan == -1) ? 1 : oCell_previous.RowSpan;

                System.Text.StringBuilder strb = new System.Text.StringBuilder(300);
                System.IO.StringWriter sw = new System.IO.StringWriter(strb);
                System.Web.UI.HtmlTextWriter htw = new HtmlTextWriter(sw);
                oCell.RenderControl(htw);
                string str1 = strb.ToString().Substring(strb.ToString().IndexOf(">"));
                strb.Remove(0, strb.Length);
                sw.Flush();
                htw.Flush();
                oCell_previous.RenderControl(htw);
                string str2 = strb.ToString().Substring(strb.ToString().IndexOf(">"));
                strb.Remove(0, strb.Length);
                sw.Dispose();
                htw.Dispose();

                if (str1 == str2)
                {
                    oCell.Visible = false;
                    oCell_previous.RowSpan += oCell.RowSpan;
                }
            }
        }
        catch(Exception ex)
        {
            if(errormsg!=null)  errormsg.Text = ex.Message;
        }
    }
--------------------编程问答-------------------- 合并后的效果图:
--------------------编程问答-------------------- rdlc 报表,向导搞定 --------------------编程问答-------------------- 除
补充:.NET技术 ,  C#
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,