相关数据查询出来放人 DataSet

解决方案 »

  1.   

    行转列吧应该可以的
    select 
    max(No) as '编号',
    Name as '姓名',
     max(case type when 2 then sum else 0 end ) as '类型2',
     max(case type when 3 then sum else 0 end ) as '类型3',
    max(Month) as '月份',
    max(OpDate) as '录入时间'
    from tableName group by Name
    数据量大可能会影响效率,谨慎使用吧
      

  2.   

    推荐用视图 不然就初始化一个来.add
      

  3.   


    case type when 2 then sum else 0 end
    这句是什么意思?
      

  4.   

    行列转换一下就行了啊,SQL版搜一下代码,遍地都是
      

  5.   


    sql别人写的 我现在获取到的数据是这种样子的
    我放在了 DataSet
    现在怎么在后台实现这个
      

  6.   

    改下SQL就行啊,貌似Groupby有用吧
      

  7.   

    我的 类型 有很多而且是不固定的 要怎么办?用SQL把那些不固定的搜出来,然后放在一个datatable里面,然后用for循环输出和后面的SQL加起来不就好了
      

  8.   

    我现在用sql 查询出来了列头如下: 
    No   Name  Month  OpData  类型1  类型2  类型3  类型N我现在在后台怎么循环取 类型1到类型N字段里的值?
      

  9.   


    我现在用sql 查询出来了列头如下: 
    No   Name  Month  OpData  类型1  类型2  类型3  类型N我现在在后台怎么循环取 类型1到类型N字段里的值?
      

  10.   


    我现在用sql 查询出来了列头如下: 
    No   Name  Month  OpData  类型1  类型2  类型3  类型N我现在在后台怎么循环取 类型1到类型N字段里的值?
    需要把类型动态起来,不能写死了
      

  11.   

    ---查询---
    declare @sql varchar(max)
    select 
      @sql=isnull(@sql+',','')
      +'Max(case when [type]='''+[type]+''' then [SUM] else 0 end) as [类型'+[type]+']'
    from (select distinct [type] from [Test]) t
    set @sql='select [No] as 编号,[Name] as 姓名,  '+@sql+',convert(varchar(10),Month,120) as 月份,convert(varchar(10),OpData,120)  as 录入时间 from [Test] group by [No],[Name],convert(varchar(10),Month,120),convert(varchar(10),OpData,120)'
    exec (@sql)
      

  12.   


    case type when 2 then sum else 0 end
    这句是什么意思?
    可以理解为   当 type =2 时候取 sum的值,显然是30
      

  13.   

    那我在后台 怎么循环取这个数据  我的这个  类型1  类型2 类型3 类型N 列很多
    有没有办法循环取值?
    把上面直接当sql语句执行,返回一个DataTable
    得到了DataTable,你还不会呈现到前台么?
      

  14.   

    (case when type=’2‘  then sum else ‘ 0 ’end) as ' 类型名'
      

  15.   

    DataTable里面如下取值吗?如果我有50个列要一个一个写列名吗?
    dr["列名"]="你的值";
      

  16.   


    for(int i = 0; i < dt.Rows.Count-1; i++)
     {
              for (int j = 0; j <dt.Columns.Count-1; j++)
              {
                           dt.Rows[i][j]
              }}遍历不行?