我的想法是建一个上面的项目名称表,然后在工资的基本表中让显示的时候列名自动对应到上面的这个表 
表B
id b1 b2 b3 b4 b5 b6 b7 
1 水费 房补 水电 奶粉费 清凉费 学费 书费 表A
id a1 a2 a3 a4 a5 a6 a7 
1 300 444 333 2233 222 111 334 
对应后如下:
id b1  b2  b3  b4   b5  b6  b7 
1  300 444 333 2233 222 111 334 
2  323 324 324 432  234 443 233 
我的意思就是让b1对应a1,b2对应a2,b3对应a3...... 
怎样用SQL语句让它们对应,请高手指教。

解决方案 »

  1.   

    我的想法是建一个上面的项目名称表,然后在工资的基本表中让显示的时候列名自动对应到上面的这个表 
    表B
    id b1  b2   b3   b4     b5     b6   b7 
    1 水费 房补 水电 奶粉费 清凉费 学费 书费 表A
    id a1 a2 a3 a4 a5 a6 a7 
    1 300 444 333 2233 222 111 334 
    对应后如何让dbgird的表头:
    id 水费  房补  水电  奶粉费   清凉费  学费  书费 
    1  300   444   333   2233     222     111   334 
    2  323   324   324   432      234     443   233 
    我的意思就是让b1对应a1,b2对应a2,b3对应a3...... 
    怎样用SQL语句让它们对应,请高手指教。
      

  2.   

    我的想法是建一个上面的项目名称表,然后在工资的基本表中让显示的时候列名自动对应到上面的这个表 
    表B
    id b1  b2    b3   b4      b5      b6    b7 
    1 水费 房补 水电  奶粉费  清凉费  学费  书费 表A
    id a1 a2 a3 a4 a5 a6 a7 
    1 300 444 333 2233 222 111 334 
    对应后如何让dbgird的表头:
    id 水费  房补  水电  奶粉费   清凉费  学费  书费 
    1  300   444   333   2233     222     111   334 
    2  323   324   324   432      234     443   233 
    我的意思就是让b1对应a1,b2对应a2,b3对应a3...... 
    怎样用SQL语句让它们对应,请高手指教。
      

  3.   

    TO:pengjqx(因为有我)
    你说只要一个表那应该怎样作呀,请祥细讲一下。
      

  4.   

    用 union 查询。select * from A union select * from B
      

  5.   

    TO:agui(阿贵: 高级图形用户界面)
    我的数据库是DBISAM的SQL不支持 union 这个语法呀,
    还有没有别的办法,请指教。
      

  6.   

    TO:agui(阿贵: 高级图形用户界面)
    你那条语句我又试了一下可以,但是跟我要求的不一样呀
    你那条语句效果如下:
    id b1    b2    b3    b4       b5      b6    b7    //DBGrid的列标题
    1  水费  房补  水电  奶粉费   清凉费  学费  书费 
    1  300   444   333   2233     222     111   334 
    上面我可能没说清楚,对应后如何让dbgird的表头:
    id 水费  房补  水电  奶粉费   清凉费  学费  书费 //DBGrid的列标题
    1  300   444   333   2233     222     111   334  //记录行
    2  323   324   324   432      234     443   233  //记录行
    ......
    我的意思就是让b1对应a1,b2对应a2,b3对应a3......
      

  7.   

    你的意思是想让表B的字段数据变成DBGRid的表头?这个估计得在程序中写了,直接用SQL应该没戏。
      

  8.   

    TO:agui(阿贵: 高级图形用户界面)
    是的,我的意思就是想让表B的字段数据变成DBGRid的表头,然后DBGRid的记录行里显示表A的数据。
    要在程序中写要如何写,不用SQL也没问题只要能实现就行了。
      

  9.   

    你可以用 Columns 方式。TDBGrid有一个Columns属性,它是 TDBGridColumns 类型。你可以“select * from B where 条件”以后,对照字段序号依次执行:
    with DBGrid1.Columns.Add do
    begin
      FieldName := 'a#'; // 对应的字段名
      Title := '从B结果集中取出的值'; // 如 tblB.fields[i].AsString
    end;如果在设计时就定好了Columns,则只需遍历Columns,将B中字段值赋给 DBGrid1.Columns[i].Title 即可。