日期:2014-05-17  浏览次数:20449 次

求个简单高效的SQL语句
现在有两张表表A ,其中存放的是公式,表B中存放的是每个单位按照公式审核的情况,可能是审核通过,也可能已经审核过,但是没有通过(如0表示不通过,1表示通过),也可能表B中还没有任何公式的信息(还从来没有进行审核过),现在求个查询已经完全审核通过的单位的语句,谢谢了。

------解决方案--------------------
如果你的数据不存在重复性,则如下,否则需要使用双重否定.
SQL code
create table a(fid varchar(10), fname varchar(10))
insert into a values('001',  '公式A')
insert into a values('002',  '公式B')
create table b(divcode varchar(10),fname varchar(10),fid varchar(10), aflag int)
insert into b values('0001' ,   '单位A' ,  '001' , 1)
insert into b values('0001' ,   '单位A' ,  '002' , 1)
insert into b values('0002' ,   '单位B' ,  '001' , 1)
insert into b values('0002' ,   '单位B' ,  '002' , 0)
insert into b values('0003' ,   '单位C' ,  '002' , 1)
go

select fname from b where aflag = 1 group by fname having count(1) = (select count(1) from a)

drop table a , b

/*
fname      
---------- 
单位A

(所影响的行数为 1 行)
*/

------解决方案--------------------
探讨
请老大给个双重否定的sql,谢谢!