3-2、于是所有的结果就出来了,对于多列表就有视图5包含合格的行:
(
select * from k where k.num in (select num from 视图2)
or k.num in (select num 视图4)
) 这里的k是什么
应该就等于这句吧select * from 视图2 union select * from 视图4
(
select * from k where k.num in (select num from 视图2)
or k.num in (select num 视图4)
) 这里的k是什么
应该就等于这句吧select * from 视图2 union select * from 视图4
解决方案 »
- SQL查询中调用DIV
- 存储过程中是否都需要return才能得到结果?
- 小弟在此等候回答。
- 紧急求助:我应不应该为自己申请一份工资以外的开发费用???
- 怎样把A表中的数据全部插入到B表中,两个表的结构相同.
- 想写一个带参数的存储过程来读取数据,长时间没有写了忘记了
- 高难度SQL语句问题:如何找出每个学生的最好成绩?
- [高分求助]已创建好镜像环境,如何搭建故障转移集群?
- 触发器出现不能在 'inserted' 表和 'deleted' 表中使用 text、ntext 或 image 列
- 怎样断开对某个数据库正在访问的所有连接(SQL server 2000)
- 关于一个远程数据传输的问题!
- 请问 zjcxc(邹建) 分页存储p_show 的问题
做一个insert触发器,要插入的记录与最接近的旧有记录差值不大于1,就不插入进来。
但是当时脑袋里是这么想的:如果表有多列,那包含合格行的视图是:
select * from k where k.num in (select num from 视图2)
or k.num in (select num 视图4)
不小心写了出来 k是表
本来想等空下来后把这个内容整理一下,可苦于一直没时间。
现见到realgz (realgz) 已经整理了,在此谢过了。
有兴趣的朋友可以查看这个帖子:
http://expert.csdn.net/Expert/topic/2539/2539535.xml?temp=.6932032
刚开始苦于没有好的答案于是就又把原题抽象一下见下贴。
http://expert.csdn.net/Expert/topic/2541/2541209.xml?temp=.7224542等一下我把问题的原型写一下!
由于食堂工人的误操作,常常出现员工吃了一顿饭,却被扣除二次钱的情况。
体现在数据库中的情况可能就某个人在 10:10:10有一条消费记录,在10:11:10
也有一条消费记录。而第二条记录很可能就是食堂功能的误操作所产生的。
(在这里不讨论误操作产生的原因和改进方法,由于系统是别人做的,我需要
完成一个外挂程序)
现在需要做一个外挂程序完成如下功能。
问题:
1、显示出误操作的原始刷卡记录(包括原记录)
2、每个部门在每台机器上的实际消费总数。
3、一天内所有实际消费次数大于2次那些人的详细消费记录。。
判断误刷卡的原则:
1、系统给定一个误操作时间间隔(以一分钟为例) 60s
2、同一时间点的消费记录只算一次(取ID小的那条记录作为正确操作的记录,其余都属于误操作记录)。
例: 1 小张 市场部 2003-10-10 10:10:04 消费机A
2 小张 市场部 2003-10-10 10:10:04 消费机A(属于误操作)
3 小张 市场部 2003-10-10 10:10:04 消费机A(属于误操作)
.......
3、凡是两条记录的时间差在60S内,取时间最小的那条记录作为正确操作的记录,其余都属于误操作记录。
例: 5 小张 市场部 2003-10-10 10:10:05 消费机A
6 小张 市场部 2003-10-10 10:10:28 消费机A(属于误操作)
......
4、如果消费机器是不同的机器,则一定是两条有效的记录
例: 8 小张 市场部 2003-10-10 10:10:05 消费机A
9 小张 市场部 2003-10-10 10:10:06 消费机B
显示要求:
显示出所有误操作的刷卡记录,包括这些误操作是针对于那一条记录。
即需要区分出争取记录和误操作记录。
每个部门在每台机器上的消费总数,是指实际消费的次数,需要除去
误操作的记录。
一天内实际消费次数大于二次的的记录,是指某一个人一天内在所有
机器上实际消费的总次数大于二的人当天的所有消费记录。
例: 小张在2003-10-10实际消费次数累计为5次,则需要显示小张在
2003-10-10那天的所有消费记录。
欢迎继续关注!!
delete
from tableName A
where exists(select 1
from tableName
where id>A.id
and datediff(ss,A.操作时间,操作时间)<=60
and 消费机=A.消费机)
上面少个ABS:
delete
from tableName A
where exists(select 1
from tableName
where id>A.id
and abs(datediff(ss,A.操作时间,操作时间))<=60
and 消费机=A.消费机)
from tableName A
where exists(select 1
from tableName
where id>A.id and 卡号=A.卡号
and abs(datediff(ss,A.操作时间,操作时间))<=60
and 消费机=A.消费机)