DateSet 记录分组排序并过滤的问题
表1,名为:Table1
字段1,字段2,字段3
aa,bb,6
aa,bb,6.5
aa,bb,5
cc,dd,7
cc,dd,6
ee,ff,9
字段1与字段2都相等的情况 取字段3最大的
结果:
aa,bb,6.5
cc,dd,7
ee,ff,9
有什么好的办法可以快速实现
------解决方案-------------------- C# code
var query= from t in ds.Talbes[0].AsEnumerable()
           group t by new {字段1=t.Field<string>("字段1"),字段2=t.Field<string>("字段2")} into g
           select new {g.Key.字段1,g.Key.字段2,字段3=g.Max(s=>s.Field<double>("字段3")};
------解决方案--------------------  本人亲自试过,可以达到你要的效果! select 字段1 ,字段2,max(字段3) from Table1 group by 字段1,字段2
------解决方案--------------------  up 探讨  本人亲自试过,可以达到你要的效果! select 字段1 ,字段2,max(字段3) from Table1 group by 字段1,字段2 
------解决方案--------------------  上面的回答第三个字段没有表头,下面的这个第三个地段有表头 select 字段1 ,字段2,max(字段3) as ’字段3‘ from Table1 group by 字段1,字段2
------解决方案-------------------- 探讨  是用LINQ,不是传统的sql 
------解决方案--------------------  
DataTable dt = new DataTable();        dt.Columns.Add("字段1",typeof(string));        dt.Columns.Add("字段2", typeof(string));        dt.Columns.Add("字段3", typeof(decimal));        dt.Rows.Add("aa","bb",6);        dt.Rows.Add("aa","bb",6.5);        dt.Rows.Add("aa","bb",5);        dt.Rows.Add("cc","dd",7);        dt.Rows.Add("cc","dd",6);        dt.Rows.Add("ee", "ff", 9);        var source = from temp in dt.AsEnumerable() group temp by new { 字段1 = temp.Field<string>("字段1"), 字段2 = temp.Field<string>("字段2") } into g select new { 字段1 = g.Key.字段1, 字段2 = g.Key.字段2, 字段3 = g.Max(t => t.Field<decimal>("字段3")) };        foreach (var s in source)        {            Response.Write("<br/>");            Response.Write(s.字段1 + "   " + s.字段2 + "    " + s.字段3);        }