100分求一SQL语句(100分)

  • 主题发起人 主题发起人 sjm
  • 开始时间 开始时间
S

sjm

Unregistered / Unconfirmed
GUEST, unregistred user!
有Sql Server 2000两个表Table1、Table2。Table1有"标号"和"状态"两个文本字段,如:
Table1:
==================
标号 状态
1083 已录入
1022 已录入
1012 待审核
1356 审核通过
......

Table2有"标号集"文本字段,如:
Table2:
=========================
标号集
2345,4321,1095,432
1170,2235, 668
1254,1012,4490,123
557,3234,1109,8837,6653
......

我的问题是:若Table2的某条记录中的某个标号在Table1中存在且状态为"待审核",则就不显示Table2中的这条记录,否则就显示。如何写这样的筛选SQL语句呢?请教各位高手了,谢谢!
 
呵呵.搞定了!
select 标号集 from table2 where 标号集 not in (select 标号集 from
(select 标号,charindex(标号,标号集) as flag,标号集,状态 from table1,table2) a
where flag<>0 and 状态='待审核')
 
shadowpj,测试未通过啊,呵呵.
 
不会啊.我测试了的.
 
select * from table2 where 标号集 in (select 标号 from table1 标号<> 1012 )
 
to shadowpj:
首先感谢您的代码,我用上面给出的数据试了一下可行,唯一可惜的是若Table2中有这样一条记录:35353,456,10120,3791的话用您的代码就筛选出错了。能否加以改进?谢谢!
 
select 标号集 from table2 where 标号集 not in (select 标号集 from
(select 标号,charindex(标号+',',标号集+',') as flag,标号集,状态 from table1,table2) a
where flag<>0 and 状态='待审核')
 
用存储过程呀
 
select 标记集 from table2 where 标记集 not in (select 标记号,状态 from table1 where 状态:='待审核')
 
呵呵..wqch88的因该可以!我要分分!本人喜欢写各种复杂SQL语句.有的可以告诉我.
但是不要问交叉试图的问题.呵呵 QQ:258598555
 
select bhj from
(select *,charindex(bh,bhj)flag,(case when charindex(bh,bhj)<>0 then substring(bhj,charindex(bh,bhj)+len(bh),1) else 'a' end) flag1
from (select bh from @a where zt='待审核') a,@b b) as a
where not(flag>0 and flag1='') and not(flag>0 and flag1=',')
其中bh=标号 zt=状态 bhj=标号集
 
后退
顶部