2017-08-09 33 views
0

我创建级联柱的图。的Oracle SQL - 使用上的级联柱LISTAGG从视图

我成功地用于各个列LISTAGG,但是当我试图在LISTAGG使用级联柱,我接收到错误,这是一个无效的标识符。

有没有办法在一个LISTAGG格式的要求,message_desc列组合在一起?

我的查询如下:

select a.ID, 
a.NAME, 
a.YEAR, 
count (a.linenum) as count_missing_docs, 
listagg(a.requirement, ',') within group (order by a.requirement) as "reqs", 
listagg(a.MESSAGE_DESC, '...')within group (order by a.MESSAGE_DESC)as "msgs", 
listagg(a.combo,' ') within group (order by a.combo) as "all_info" 
from 
(SELECT 
rownum "LINENUM", 
FTR.ID, 
FTR.NAME, 
FTR.YEAR, 
FTR.REQUIREMENT, 
FTR.STATUS, 
FTR.STATUS_IND, 
FTR.MESSAGE_DESC, 
FTR.REQUIREMENT||'-'||FTR.MESSAGE_DESC||'...' as "combo" 
from TRACKING_REQUIREMENT FTR 
where FTR.year = '1617' 
and FTR.status = 'R' 
and FTR.satisfied_ind = 'N' 
order by 2 , 1 asc) A 
group by 
a.ID, 
a.NAME, 
a.YEAR 
order by 1 

回答

3

这个问题实际上就是你一直把双引号的标识符 - 这告诉你要区分大小写标识甲骨文,但随后你提到它没有双引号,使用不区分大小写的标识符(其甲骨文似乎内部解释为ALL大写)。

刚刚摆脱所有的双引号和您的查询应该正常工作。