信息表A,信息抑制表B,在表B中可以定义多条抑制规则,如果符合抑制条件的记录不存入表A,抑制字段有a,b,c,d和起止时间(starttime,endtime),任意抑制字段都可以为空,比如起止时间为空,就不用判断当前时间是否在起止时间内,只判断其他四个字段是否符合即可。如果符合条件,即插入信息表A。求信息过滤的SQL语句。
会的帮个脚本忙,不会的帮的人气忙,来者有分。
会的帮个脚本忙,不会的帮的人气忙,来者有分。
解决方案 »
- 用友U8物料清单BOM数据表是什么名字
- join的问题(急)
- 如何将mp3文件保存到表中?
- sql server 2005 dbcc checkdb 时 报错
- 如何判断多个连接相互阻塞时,大家竞争的时那些表或者那些操作?
- 谁要“随机删除重复记录-----进来看一下
- 请高手帮忙看下这个存储过程,为什么这么慢呢
- 使用grant select on table2 to [onest200\zhao]后,在企业管理器不能除去他的权限?报错:在users集合没有找到,如果是合法名称,使用[]
- sqlserver与ORACLE链接服务器问题?
- 分数不多(210),求一高效加密/解密源程序思路
- Sql 注入的一个简单问题
- 求的sql写法,请各位帮忙?
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[B]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[B]
GOCREATE TABLE [dbo].[B] (
[ID] [int] IDENTITY (1, 1) NOT NULL ,
[a] [int] NULL ,
[b] [int] NULL ,
[c] [int] NULL ,
[d] [int] NULL ,
[StartTime] [varchar] (20) COLLATE Chinese_PRC_CI_AS NULL ,
[EndTime] [varchar] (20) COLLATE Chinese_PRC_CI_AS NULL
) ON [PRIMARY]
GO数据:id a b c d starttime endtime
1 1 1 4 3
2 2 7 4 3 2010-10-1 0:00:00 2010-10-1 0:00:00
3 -1 6 4 3
4 -1 6 3 -1
if not exists(select 1 from b
where a=isnull(@a,a) and b=isnull(@b,b) and c=isnull(@c,c) and d=isnull(@d,d)
and StartTime>=isnull(@s,StartTime) and EndTime<=isnull(@e,EndTime)
)
begin
i nsert a select @a,@b,@c ,@d ,@s ,@e
end
if not exists(select 1 from b
where a=isnull(@a,a) and b=isnull(@b,b) and c=isnull(@c,c) and d=isnull(@d,d)
and StartTime>=isnull(@s,StartTime) and EndTime<=isnull(@e,EndTime)
)
begin
insert a select @a,@b,@c ,@d ,@s ,@e
end