我有一张表aa
具体内容为
ID  FNAME
1   福利费
2   交通费
3   教育费
4   其他另外有一张表bb
具体内容为
福利费  交通费  其他 教育费
100     10      50   400
现在我要做的是我要从表bb里面搜索各项费用,但是搜索出来的结果集字段的顺序要求跟表aa里面ID的顺序同。因为以后表aa里ID对应的FNAME要做调整

解决方案 »

  1.   

    order by charindex('|'+搜索结果+'|','|福利费|交通费|教育费|其他|')
      

  2.   

    语句里面不能出现|福利费|交通费|教育费|其他|这些定死的字段的
    因为我以后那张aa表里的FNAME内容变了 bb里的字段也会跟着变 不能定死
      

  3.   

    就是说aa里的FNAME内容都会在bb表里找到名称相同的字段  只是我现在要搜索bb的数据。这些数据排序要按照aa的ID排序
      

  4.   

    declare @a varchar(2000)
    select @a=''
    select @a=@a+'|'+FNAME from aa order by ID 
    再把ORDER BY改成变量的形式:order by charindex('|'+搜索结果+'|',@a+'|')
      

  5.   

    select * from bb
    结果是(其中福利费  交通费  其他 教育费是字段名):
    福利费  交通费  其他 教育费
    100     10      50   400
      

  6.   

    DECLARE  @vchSql  VARCHAR(8000)UPDATE   aa
    SET      @vchSql = @vchSql + FNAME + ','                    
    FROM     aaSET     @vchSql = LEFT(@vchSql,LEN(@vchSql) - 1)
    SET     @vchSql = 'SELECT ' + @vchSql +' FROM bb'
    EXEC(@vchSql)
      

  7.   

    建议你把bb的格式
    id ,收费类型, 数额
    然后再把结果行列转换。
      

  8.   

    自己解决了
    declare @a varchar(2000)
    select @a=''
    select @a=@a+','+FItemName from aa order by ID 
    exec('select 姓名,部门'+@a+'from bb)