【发布时间】:2014-12-09 16:24:51
【问题描述】:
我有以下疑问:
select "Title_ID","Text",
(SELECT LISTAGG("Genre",',') WITHIN GROUP (ORDER BY "Genre") from (SELECT DISTINCT "g"."Genre" from "RegionBroadcasts" left join "Genres" "g" on "RegionBroadcasts"."Genre" = "g".PK_GENRE where "RegionBroadcasts"."Region"=24 and "RegionBroadcasts"."Title_ID"="IDs"."Title_ID")) as "SourceGenres",
(SELECT LISTAGG("Genre",',') WITHIN GROUP (ORDER BY "Genre") from (SELECT DISTINCT "g"."Genre" from "RegionBroadcasts" left join "Genres" "g" on "RegionBroadcasts"."Genre" = "g".PK_GENRE where "RegionBroadcasts"."Region"=1 and "RegionBroadcasts"."Title_ID"="IDs"."Title_ID")) as "TargetGenres",
(SELECT LISTAGG("Channel_Name",',') WITHIN GROUP (ORDER BY "Channel_Name") from (SELECT DISTINCT "Channel_Name" from "ProgrammeChannels" left join "ChannelNames" on "ProgrammeChannels"."Channel"="ChannelNames"."Channel_ID" where "ProgrammeChannels"."Region"=24 and "ProgrammeChannels"."Title_ID"="IDs"."Title_ID")) as "SourceChannels",
(SELECT LISTAGG("Channel_Name",',') WITHIN GROUP (ORDER BY "Channel_Name") from (SELECT DISTINCT "Channel_Name" from "ProgrammeChannels" left join "ChannelNames" on "ProgrammeChannels"."Channel"="ChannelNames"."Channel_ID" where "ProgrammeChannels"."Region"=1 and "ProgrammeChannels"."Title_ID"="IDs"."Title_ID")) as "TargetChannels"
from
((
select "LocalTitle" as "Title_ID" from "RegionBroadcasts2" where "Region" = 24
union
select "GlobalTitle" as "Title_ID" from "RegionBroadcasts2" where "Region" = 24)
intersect
(select "LocalTitle" as "Title_ID" from "RegionBroadcasts2" where "Region" = 1
union
select "GlobalTitle" as "Title_ID" from "RegionBroadcasts2" where "Region" = 1
)) "IDs"
left join "ProgrammeTitles" on "IDs"."Title_ID" = "ProgrammeTitles"."Text_ID"
where "IDs"."Title_ID" <> 1
and "IDs"."Title_ID" is not null
order by "Text";
由于某种原因,在我将“RegionBroadcasts”链接的前 4 个“select listagg”语句中,我有一个“无效标识符”类型的异常。“Title_ID”与 “IDs”。“Title_ID”
就像我没有被授权使用子查询“ID”一样。
我想明确一点,如果我用一个固定的整数值替换“IDs”.“Title_ID”,我会得到一些结果
【问题讨论】: