表名  T_Products
数据源
ID    Nmae     Spec
1     name1    100
2     name2    80
3     name2    100
4     name5    100
5     name6    100
6     name1    150
7     name3    100
8     name5    30
9     name2    400
10     name1    200
11     name1    300
12     name3    800
希望得出的查询结果是
Nmae     Spec
name1    100
         150
         200
         300
name2    80
         100
         400
name3    100
         800
name5    100
         30
name6    100
UI技术钻研查询sql server界面设计

解决方案 »

  1.   

    pivot table控件,或者一些其他第三方的grid控件,自带的winform控件估计很难搞.
      

  2.   

    希望得出的查询结果是
    Nmae     Spec
    name1    100
             150
             200
             300
    name2    80
             100
             400
    name3    100
             800
    name5    100
             30
    name6    100
      

  3.   

    如果是数据库表的话用group by 后轮训获取各个分组的具体值如果是内存表的话用linq的groupby功能也很方便
      

  4.   

    最好是sql语句就可以处理
    艹蛋的UI设计师设计出这种艹蛋的效果
      

  5.   

    可以不排序,但是要Name相同的要放在一起
      

  6.   

    最好是sql语句就可以处理
    艹蛋的UI设计师设计出这种艹蛋的效果
    那就让操蛋的UI设计师去使用操蛋的第三方控件展现好了.
      

  7.   

    group by应该没有这么简单吧?
    目前只想到一个分布式处理,但是感觉性能上不行
      

  8.   

    最好是sql语句就可以处理
    艹蛋的UI设计师设计出这种艹蛋的效果
    那就让操蛋的UI设计师去使用操蛋的第三方控件展现好了.哎!人家把效果图设计出来了,后面的事情就不管了,程序员的悲剧
      

  9.   

    这困难么????根据Name排序,然后显示时跟前一条数据进行比较,如果Name相同就不显示当前Name,为什么一定要SQL呢?
      

  10.   

    select * from table order by name;//rdr sqlreader
    List<Entity> list = new List<Entity>();
    while(rdr.Read())
    {
        list.Add(new Entity()
      {
           Name= rdr["name"].ToString(),
           Spec=(int)rdr["Spec"]
       }
       if(list.Count>1)
       {
          if(list[list.Count-1].Name==list[list.Count-2].Name)
          {
               list[list.Count-1].Name=string.Empty;
          }
       }
    }
      

  11.   

    后台拼Table HTML 然后输出,以前经常这么搞
      

  12.   


    这不就DataGridView行合并么。这有啥难的SO EASY
    1.WINFORM?  找Devexxxxxx的 GridControl啥都不用写直接将数据源转进去,设一个CellMearge属睡就可以了2.WEB 也找DevExxx WebGridControl 也有的。3.WEB 你自己 写个Table合并行就是了,So EASY
      

  13.   

    select Nmae,Spec from T_Products group by Nmae order by Nmae按名字分組按名字排序,結果存入datatable,datagridview和datatable綁定,結果應該如下:
    Nmae     Spec
    name1    100
    name1    150
    name1    200
    name1    300
    name2    80
    name2    100
    name2    400
    name3    100
    name3    800
    name5    100
    name5    30
    name6    100
      

  14.   

    那就datatable加個循環判斷吧
    string name = "";//變量
    for(int i=0;i<dt.rows.count;i++)
    {
      if(dt.rows[i][1] == name)//當該行的姓名和name相同執行以下操作
      {
        dt.rows[i][1] = "";//name設為“”
      }
      else
      {
        name = dt.rows[i][1];//不同則該行不變,令name內容變為該行姓名
      }
    }
      

  15.   

    利用字典,以name做key,如果有则添加到key对应的value中,如果没有则添加,然后输出,html控制
      

  16.   


    相同的name只保留一个
    那只能在加进datatable之前做处理解决了
      

  17.   

              var query=from p db.table
              group p by p.Name into g
              select 
               {
                  Name =g.Key,
                  Spec = String.Join("、", g.Select(x => x.Spec).ToArray())
               }; 
    Name   Spec
    name1  100、150、200、300
    name2  80、100、400
    name3  100、800
    name5  100、30
    name6  100
      

  18.   


    看样子你还是没有看懂我所说的问题
    楼主到底要什么效果,spec换行?
      

  19.   


    看样子你还是没有看懂我所说的问题
    楼主到底要什么效果,spec换行?希望得出的查询结果是
    Nmae     Spec
    name1    100
             150
             200
             300
    name2    80
             100
             400
    name3    100
             800
    name5    100
             30
    name6    100列表行数不变,但是相同的name只取一个
      

  20.   


    看样子你还是没有看懂我所说的问题
    楼主到底要什么效果,spec换行?希望得出的查询结果是
    Nmae     Spec
    name1    100
             150
             200
             300
    name2    80
             100
             400
    name3    100
             800
    name5    100
             30
    name6    100列表行数不变,但是相同的name只取一个
    查出来以后用split根据"、"符号分割,然后取数组中的元素
      

  21.   

    name不是一个固定值,楼主...太弱了...
      

  22.   

    sql+算法+ui展示的控件(去了解下什么easy ui之类的列表控件)可以实现你的需求。