本帖最后由 net_08 于 2012-07-11 09:56:41 编辑

解决方案 »

  1.   

    distinct name根据name去找等于这个name的记录个数 n  rowspan = "n"
      

  2.   

    下面sql语句执行即可看到效果,细节自己修改,不过建议还是在后台拼接html代码(顶楼上)
    declare @table table(name varchar(20),unit varchar(20),price numeric(12,2))
    insert @table
    select '商品1','TON',120.00 UNION ALL
    select '商品1','CBM',300.00 UNION ALL
    select '商品2','TON',200.00 --select * from @table
    Declare @result varchar(500)
    set @result='<table>'
    Declare @name varchar(20),@unit varchar(20),@price decimal(18,2)
    Declare table_Cursor Cursor
    For Select name,unit,price From @table
    Open table_Cursor
    Fetch Next From table_Cursor
    Into @name,@unit,@price
    WHILE @@FETCH_STATUS = 0
       BEGIN set @result=@result+'
            <tr>
                <td rowspan="2">'+@name+'</td>
                <td>'+@unit+'</td>
                <td>'+Convert(varchar(18),@price)+'</td>
            </tr>'      FETCH NEXT FROM table_Cursor
          INTO @name,@unit,@price
            
       END
       CLOSE table_Cursor
       DEALLOCATE table_Cursor
    set @result=@result+'<table>'
    print @result