我有一个表如下:
c r rf rt
-----------------------------
0 0 f11 t1
-- -- f12 t1
-- -- f13 t1
-- -- f21 t2
-- -- f22 t2
-- -- f23 t2
-- -- f24 t2
-- -- f31 t3
... ...现在想根据上面的表生成如下的表:表t1
f11 f12 f13 ...
------------------------------表t2
f21 f22 f23 f24 ...
---------------------------------------表t3
f31 ...
------------或更多 ...用数据组件或T-SQL都行,望各位不吝赐教。

解决方案 »

  1.   

    不知道,你那个rf字段下面的值是不是已知(固定)的,如果是可以用下面方法:
    select (select sum(rt) from table where tf =f11) as f11,
           (select sum(rt) from table where tf =f12) as f12 ,
                     .
                     .
                     .
            (select sum(rt) from table where tf =fn) as fn
      

  2.   

    不是一两个SQL的问题吧, 可能要自己在程序中生成数据
      

  3.   

    最上面的表记录的是参照表的信息,比如‘rt’为参照表的名称,相应的‘rf’为‘rt’表中的字段
      

  4.   

    一条语句可能完成不了,换我会用存储过程,或者在Delphi中用循环操作!
      

  5.   

    比如:
    你那基表名为Tbase,一开始这样做:
    select rt from Tbase group by rt
    针对分组查出来的每一个值(比如t1,我用的是SQLServer语法):
    declare @ExeSQL varchar(1000)
    set @ExeSQL='Create Table t1 '
    select rf from Tbase where rt=t1
    然后每一条都加入到动态语句中去:
    set @exesql='(f11 类型'



    set @exesql=')'
    execsql(@exesql)