【发布时间】:2015-07-09 20:55:00
【问题描述】:
我有一个包含以下列的表格:
- 身份证
- 技术
- name_event
- time_event
我使用以下查询计算表中值的数量
select 1, 'Folder' as "Technology", 'Status' as "Name_Event", count(dm1.id) as "number of items", max(TO_CHAR(TO_DATE('20000101','yyyymmdd')+(SYSDATE - dm1.time_event),'hh24:mi:ss')) as "Time in system"
from db dm1 join db dm2 on dm1.id = dm2.id
where dm1.technology = 'Folder' and dm1.name_event = 'status1' and NOT EXISTS(SELECT 1 FROM db dm2 WHERE dm2.name_event = 'status2' and dm2.id = dm1.id)
我做了以下插入
INSERT INTO DB(id, technology, name_event, time_event) VALUES(1,'Folder', 'status1', 01:00:00);
INSERT INTO DB(id, technology, name_event, time_event) VALUES(2,'Folder', 'status1', 01:00:00);
INSERT INTO DB(id, technology, name_event, time_event) VALUES(3,'Folder', 'status1', 01:00:00);
INSERT INTO DB(id, technology, name_event, time_event) VALUES(4,'Folder', 'status1', 01:00:00);
INSERT INTO DB(id, technology, name_event, time_event) VALUES(5,'Folder', 'status1', 01:00:00);
INSERT INTO DB(id, technology, name_event, time_event) VALUES(6,'Folder', 'status1', 01:00:00);
INSERT INTO DB(id, technology, name_event, time_event) VALUES(7,'Folder', 'status1', 01:00:00);
INSERT INTO DB(id, technology, name_event, time_event) VALUES(8,'Folder', 'status1', 01:00:00);
INSERT INTO DB(id, technology, name_event, time_event) VALUES(9,'Folder', 'status1', 01:00:00);
INSERT INTO DB(id, technology, name_event, time_event) VALUES(10,'Folder', 'status1', 01:00:00);
INSERT INTO DB(id, technology, name_event, time_event) VALUES(4,'Folder', 'status2', 02:00:00);
INSERT INTO DB(id, technology, name_event, time_event) VALUES(1,'Folder', 'status2', 03:00:00);
我在状态1中插入了10行,并将2移到状态2。所以我执行查询时状态1应该有8个项目,但结果是10...
我做错了什么?
【问题讨论】:
-
如何提供这 10 个插入语句以及创建表脚本?
-
除非我们有你的样本数据,否则我们很难看出你做错了什么——你能添加表定义和插入语句吗?
-
能否请您提供一些表格中的示例数据,以便我们更快地提供答案
-
您是否在同一会话中运行插入、移动命令和运行 sql?如果您不进行提交并在其他会话中运行 sql,它仍将显示旧值。 * 只是在这里检查。
-
您确定问题出在查询中吗?您是如何移动这些值的?