主表A:有字段 gid,
adddate,(添加时间)
objNum, (对象数量)
子表B:有字段 gid, (与主表A关联)
obj1, (对象)
同一个gid可能有多个对象现要根据 添加时间、对象数量、对象 查询数据库中是否有完全匹配的数据例: 表A数据: 1,2010,2
2,2010,3
表B数据: 1,obj1
1,obj2
2,obj1
2,obj2
2,obj3
如果要查询 时间为2010,对象数量为2,对象为obj1,obj2 则结果为存在
如果要查询 时间为2010,对象数量为2,对象为obj1,obj3 则结果为不存在
adddate,(添加时间)
objNum, (对象数量)
子表B:有字段 gid, (与主表A关联)
obj1, (对象)
同一个gid可能有多个对象现要根据 添加时间、对象数量、对象 查询数据库中是否有完全匹配的数据例: 表A数据: 1,2010,2
2,2010,3
表B数据: 1,obj1
1,obj2
2,obj1
2,obj2
2,obj3
如果要查询 时间为2010,对象数量为2,对象为obj1,obj2 则结果为存在
如果要查询 时间为2010,对象数量为2,对象为obj1,obj3 则结果为不存在
解决方案 »
- 客户端要循环操作一个几百万的表 ado open 就死了
- VS中的reporting service?
- 急切!谢谢各位以前帮助!我如何跟踪SQL SERVER的SQL语句?
- 排除重复行记录
- 在事件查看器里发现由于SQL的错误,不知何解。请教!
- sqlserver有没有工具来查看它自己的事务志?Log Explore等第三方软件不算
- 客人备份MSSQL数据库时设置了密码,现在忘记了,如何才能还原?
- 寻求奇怪SQL语句!!!!!!!!!!!!!!!!!!!!!!!!!!
- 如何编写返回记录集的存储过程
- vfp中的路径问题!
- 比较菜的一个问题,SQL连接
- 请教一个在企业管理器里新建SQL Server注册失败的问题
这题目跟GID 什么关系
set @date='2010'
set @num=2
set @duixiang='obj1,obj2'
if exists(
select b.gid
from a join b on a.gid=b.gid
where a.adddate=@date and a.objNum=@num
and CHARINDEX(b.obj1,@duixiang)>0
group by b.gid
having COUNT(b.obj1)=LEN(@duixiang)-LEN(REPLACE(@duixiang,',',''))+1)print '存在'
else
print '不存在'
-- Author :feixianxxx(poofly)
-- Version:
-- Microsoft SQL Server 2008 (SP1) - 10.0.2531.0 (Intel X86)
Mar 29 2009 10:27:29
Copyright (c) 1988-2008 Microsoft Corporation
Enterprise Evaluation Edition on Windows NT 6.1 <X86> (Build 7600: )
----------------------------------------------------------------*/
if OBJECT_ID('a') is not null
drop table a
go
create table a (gid int, adddate varchar(10) , objNum int)
insert a select
1,'2010',2 union select
2,'2010',3
go
if OBJECT_ID('b') is not null
drop table b
go
create table b (gid int, obj1 varchar(10))
insert b select
1,'obj1' union select
1,'obj2' union select
2,'obj1' union select
2,'obj2' union select
2,'obj3'
go
declare @date varchar(10),@num int,@duixiang varchar(100)
set @date='2010'
set @num=2
set @duixiang='obj1,obj3'
select case when
(select b.gid
from a join b on a.gid=b.gid
where a.adddate=@date and a.objNum=@num
and CHARINDEX(b.obj1,@duixiang)>0
group by b.gid
having COUNT(b.obj1)=LEN(@duixiang)-LEN(REPLACE(@duixiang,',',''))+1)>0
then '存在'
else '不存在' end
/*------
不存在*/