在C#中很容易实现,先取出整个表。
然后进行循环,用一个ArrayList放Customer,
每加一个Customer,和ArrayList中是否已存在,若存在,就把function 合并就可

解决方案 »

  1.   

    是的select ID ,Customer ,sum(function) from table_name group by Customer  靠 Customer 字段分组
      

  2.   

    To: 2002pine(我学习,我存在) 
      谢谢你们的回复,能说说具体的作法吗?
      

  3.   

    vipfenghuang(张伟)
    说的和题目不一致吧,不是做数值合计,是做字符连接也可以做sum()?
      

  4.   

    DataTable source=;
    DataTable dt=source.Clone();
    foreach(DataRow dr in Source.Rows)
    {
    string Customer=dr["Customer"].tostring();
    if (dt.Select("Customer='"+Customer+"'").Length>0)//表示已存在;
    {
    在此找到datarow,并将function字段换成你要的。  
     } else
    dt.ImportRow(dr);

    }
      

  5.   

    Dim conn As OleDb.OleDbConnection = New OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\db.mdb")
            Dim cmd As OleDb.OleDbDataAdapter = New OleDb.OleDbDataAdapter("select * from tab", conn)
            Dim dst As DataSet = New DataSet
            cmd.Fill(dst)
            DataGrid2.DataSource = dst
            DataGrid2.DataBind()
            Dim htb As Hashtable = New Hashtable
            Dim i As Integer
            For i = 0 To dst.Tables(0).Rows.Count - 1
                If htb.ContainsKey((dst.Tables(0).Rows(i)("Customer").ToString)) Then
                    htb.Item((dst.Tables(0).Rows(i)("Customer").ToString)) = htb.Item((dst.Tables(0).Rows(i)("Customer").ToString)) & dst.Tables(0).Rows(i)("Function").ToString
                Else
                    htb.Add(dst.Tables(0).Rows(i)("Customer").ToString, dst.Tables(0).Rows(i)("Function").ToString)            End If        Next
      

  6.   

    To:2002pine(我学习,我存在)  谢谢你的再次答复,对于这里"在此找到datarow,并将function字段换成你要的",我该怎样写,我实在没做过这方面的,我不太理解你的意思,假如一个Customer有两个相同的,我要用怎样的语句,把两条记录的Function的字符并集起来呢?这个语句我不懂,还望能指导!谢谢!
      

  7.   

    To:guoyan19811021(吉祥)  据我的理解,如果Customer相同,你还是没有把Function中的字符做并集处理啊!如果用&,是把字符相连啊!比如ABC&CDE为ABCCDE,而我要的是ABCDE,就是其中的C只取一个啊!不知我理解对不?谢谢你了!