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
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 修正下
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勾的 ,勾一个就动态创建第一张表 ,勾第二个就创建第二张表,要跟第一张表链接。 勾第三个 就要跟前面两个链接起来的表 再链接。。
as
begin
exec ('select rong
from '+@tc+'
where rong in
(select a.rong from '+@ta+','+@tb+' where a.rong=b.rong)
')
end
as
begin
exec ('select rong
from '+@tc+'
where rong in
(select a.rong from '+@ta+' a,'+@tb+' b where a.rong=b.rong)
')
end
修正下
打第一个勾的时候,产生t1,打第二个勾的时候,就产生t2,需要把t1和t2连接后的表暂时称为t3吧(我不知道把t3放哪里)。
打第三个勾的时候,产生t4,和t3做连接。一次类推。。
打第一个勾的时候,产生t1,打第二个勾的时候,就产生t2,需要把t1和t2连接后的表暂时称为t3吧(我不知道把t3放哪里)。
打第三个勾的时候,产生t4,和t3做连接。一次类推。。
因为checkedlistbox的每一个选项当做是临时表的表名。目前就一个参数
你就写一个你选了10个checkedlistbox后,应该生成的sql语句。
注明那些表名需要动态传入。
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勾的 ,勾一个就动态创建第一张表 ,勾第二个就创建第二张表,要跟第一张表链接。
勾第三个 就要跟前面两个链接起来的表 再链接。。