我试图构建一个只显示非唯一副本的查询。我已经建立了一个查询,显示所有记录来考虑:Oracle:通过...获得非唯一的重复副本...有计数
SELECT tbl_tm.title, lp_index.starttime, musicsound.archnr
FROM tbl_tm
INNER JOIN musicsound on tbl_tm.fk_tbl_tm_musicsound = musicsound.pk_musicsound
INNER JOIN lp_index ON musicsound.pk_musicsound = lp_index.fk_index_musicsound
INNER JOIN plan ON lp_index.fk_index_plan = plan.pk_plan
WHERE tbl_tm.FK_tbl_tm_title_type_music = '22' AND plan.airdate
BETWEEN to_date ('15-01-13') AND to_date('17-01-13')
GROUP BY tbl_tm.title, lp_index.starttime, musicsound.archnr
HAVING COUNT (tbl_tm.title) > 0;
相应的结果集是这样的:
title starttime archnrr
============================================
Pumped up kicks 05:05:37 0616866
People Help The People 05:09:13 0620176
I can't dance 05:12:43 0600109
Locked Out Of Heaven 05:36:08 0620101
China in your hand 05:41:33 0600053
Locked Out Of Heaven 08:52:50 0620101
它给了我音乐职称沿着一定的时间跨度之间发挥他们的开始时间和档案ID。
我想达到的目标是这样的:
title starttime archnr
============================================
Locked Out Of Heaven 05:36:08 0620101
Locked Out Of Heaven 08:52:50 0620101
只会有两列左:二者有相同的标题和档案号,但在部分时间是不同的。由于没有任何完全相同的条目,因此增加'HAVING COUNT'值将给我一个零行 结果集。
到目前为止我发现的是,这个问题的解决方案很可能会有嵌套子查询,但我似乎无法完成。任何帮助,将不胜感激。
注意:我在Oracle 11g服务器上。我的用户拥有只读权限。我在我的工作站上使用SQL Developer。