select rong
from c
where rong in
(select a.rong from a,b where a.rong=b.rong)
若a,b,c表都是动态表,如何写存储过程

解决方案 »

  1.   

    create proc abc(@ta varchar(20),@tb varchar(20),@tc varchar(20))
    as
    begin
       exec ('select rong
    from '+@tc+'
    where rong in
    (select a.rong from '+@ta+','+@tb+' where a.rong=b.rong)
    ')
    end
      

  2.   

    create proc abc(@ta varchar(20),@tb varchar(20),@tc varchar(20))
    as
    begin
       exec ('select rong
    from '+@tc+'
    where rong in
    (select a.rong from '+@ta+' a,'+@tb+' b where a.rong=b.rong)
    ')
    end
    修正下
      

  3.   

    好心人,那如果我有好多张表,t1和t2连接成t3,连接后的t3又和t4做连接,以此类推。不过不管怎样,始终都是两张表做链接。这样又要怎么写?
      

  4.   

    每次从checkedlistbox打一个勾,就产生一个临时表。
    打第一个勾的时候,产生t1,打第二个勾的时候,就产生t2,需要把t1和t2连接后的表暂时称为t3吧(我不知道把t3放哪里)。
    打第三个勾的时候,产生t4,和t3做连接。一次类推。。
      

  5.   

    每次从checkedlistbox打一个勾,就产生一个临时表。
    打第一个勾的时候,产生t1,打第二个勾的时候,就产生t2,需要把t1和t2连接后的表暂时称为t3吧(我不知道把t3放哪里)。
    打第三个勾的时候,产生t4,和t3做连接。一次类推。。
    因为checkedlistbox的每一个选项当做是临时表的表名。目前就一个参数
      

  6.   

    就是让你写个SQL,注明那些表是需要动态传入的。
      

  7.   

    就是让你写个SQL,注明那些表是需要动态传入的????
      

  8.   

    那些动态表名是checkedlistbox的值,该怎么说呢。
      

  9.   


    你就写一个你选了10个checkedlistbox后,应该生成的sql语句。
    注明那些表名需要动态传入。
      

  10.   

    select disname from 发热--第一张动态创建的表
    select disname from 头痛--第二张动态创建的表
    where disname in
    (select disname from 发热)select disname from 流鼻涕--第三张动态创建的表
    where disname in  
    (select disname from 头痛
    where disname in
    (select disname from 发热)
    )
    select disname from 咳嗽--第四张动态创建的表
    where disname in  
    (select disname from 流鼻涕
    where disname in
    (select disname from 头痛
    where disname in
    (select disname from 发热)那如果有第五张 那不是晕死了
    这是用checkboxlist勾的 ,勾一个就动态创建第一张表 ,勾第二个就创建第二张表,要跟第一张表链接。
    勾第三个 就要跟前面两个链接起来的表 再链接。。