有个表 flow,里面保存着一些数据,其中有字段form_id,form_filter保存着,我需要动态查询的表的部分表名和where,flow保存很多数据,假如有一个form_id 值为 tab1,那个就要查询表 form_tab1这个表的中数据select title form form_tab1 where filter=form_filter; (form_filter能保证数据的唯一性)
最后还要把flow的部分数据和这个 查询的 title 一起查询出各种goolge,百度都没找到方法,大家帮帮忙哦

解决方案 »

  1.   

    flow表中可能有多笔数据,每笔数据都要对应form_id相应的表格中根据filter,查询出title这个值
      

  2.   

    一次插一个表可以SELECT B.title ,A.*
    FROM flow A,form_tab1 B
    WHERE A.FORM_ID = 'tab1'
    AND B.filter=A.form_filter
      

  3.   


    declare @sql nvarchar(1000)
    select @sql=''
    select @sql=@sql+'select title from '+form_id+ ' where filter = '+form_filter+ 'union all   ' from flow
    exec(@sql)
      

  4.   

    可能没说清哦
    在flow中每一条数据都要查询出对应的另一个表的一个字段保存的数据
    如 flow 查出一个 form_id=tab1,form_filter=23231232 这个form_filter是动态表的查询条件,动态表也有form_filter这个字段
    然后查询 select title from form_tab1 where form_filter=23231232 
      

  5.   

    假如 flow有 字段 id name descr form_id form_filter最终要的 结果是 id name descr title
      

  6.   


    也就是, 做一个 这样的 view 出来
      

  7.   

    try this,create table flow
    (id int, name varchar(5), descr varchar(5),
     form_id varchar(5), form_filter varchar(10))insert into flow
    select 1,'n_1','d_1','tab1','23231232'create table form_tab1
    (form_filter varchar(10),title varchar(10))insert into form_tab1
    select '23231232','t_1'create table #t(id int,title varchar(10))declare ap cursor forward_only
    for select
    'select '+rtrim(id)+', title from form_'+form_id+' where form_filter='''+form_filter+''' ' tsql
    from flowdeclare @sql varchar(6000)
    open ap
    fetch next from ap into @sql
    while(@@fetch_status<>-1)
    begin
      insert into #t(id,title) exec(@sql)
      fetch next from ap into @sql
    end
    close ap
    deallocate apselect a.id,a.name,a.descr,b.title
    from flow a
    inner join #t b on a.id=b.id/*
    id          name  descr title
    ----------- ----- ----- ----------
    1           n_1   d_1   t_1(1 row(s) affected)
    */
      

  8.   


    找人幫忙 做出來了,寫了一個PROCEDURE 先建個 虛擬表 插入 動態表格的form_id,然後用游標cursor讀出form_id 再寫入 內容就好了
    謝謝了