Oracle SQL:Xmlagg Select 中缺少标识符错误
Oracle SQL: Missing identifier error in Select with Xmlagg
我是 Oracle 的新手,希望这里有人可以帮助我解决这个问题。
我有一个 Select returns 以下没有行聚合:
current output
我的问题是第一列中的某些 ID 可以有多行,而 每个 ID 只需要一行,就像这样:
required output
Select Distinct
在我的情况下不是一个选项,并且 Listag
不允许第二列有足够的字符。
经过一些研究,我认为 Xmlagg 正是我在这里需要的,但我无法让它工作并且总是在这里出错,所以我认为我写错了。
最新错误:
ORA-00931: missing identifier
有人可以告诉我如何正确地写这个吗?
我的查询(缩短):
ALTER SESSION ENABLE PARALLEL QUERY;
SELECT
a.Id
, RTRIM(XMLAGG(XMLELEMENT("Details",
(
b.title || ' -' || c.item || ' -' || b.quantity) ORDER BY b.title)
).EXTRACT('//text()'), ' --- ') AS Details
, TO_CHAR(c.total, 'FM9,990.00') AS Sum
FROM
table1 d
/* joins */
WHERE
/* ... */
GROUP BY
a.Id
, b.title
, c.item
, b.quantity
ORDER BY
a.Id
非常感谢。
麦克
只有几样东西需要移动。
SELECT a.Id ,
RTRIM(XMLAGG(XMLELEMENT("Details", b.title
|| ' -'
|| c.item
|| ' -'
|| b.quantity ,' --- ' ).EXTRACT('//text()')
ORDER BY b.title),
' --- ')
AS
Details , TO_CHAR(c.total, 'FM9,990.00')
AS
SUM FROM table1 d
/* joins */
WHERE
* ... */
GROUP BY
a.Id
, b.title
, c.item
, b.quantity
ORDER BY
a.Id
我是 Oracle 的新手,希望这里有人可以帮助我解决这个问题。
我有一个 Select returns 以下没有行聚合:
current output
我的问题是第一列中的某些 ID 可以有多行,而 每个 ID 只需要一行,就像这样:
required output
Select Distinct
在我的情况下不是一个选项,并且 Listag
不允许第二列有足够的字符。
经过一些研究,我认为 Xmlagg 正是我在这里需要的,但我无法让它工作并且总是在这里出错,所以我认为我写错了。
最新错误:
ORA-00931: missing identifier
有人可以告诉我如何正确地写这个吗?
我的查询(缩短):
ALTER SESSION ENABLE PARALLEL QUERY;
SELECT
a.Id
, RTRIM(XMLAGG(XMLELEMENT("Details",
(
b.title || ' -' || c.item || ' -' || b.quantity) ORDER BY b.title)
).EXTRACT('//text()'), ' --- ') AS Details
, TO_CHAR(c.total, 'FM9,990.00') AS Sum
FROM
table1 d
/* joins */
WHERE
/* ... */
GROUP BY
a.Id
, b.title
, c.item
, b.quantity
ORDER BY
a.Id
非常感谢。
麦克
只有几样东西需要移动。
SELECT a.Id ,
RTRIM(XMLAGG(XMLELEMENT("Details", b.title
|| ' -'
|| c.item
|| ' -'
|| b.quantity ,' --- ' ).EXTRACT('//text()')
ORDER BY b.title),
' --- ')
AS
Details , TO_CHAR(c.total, 'FM9,990.00')
AS
SUM FROM table1 d
/* joins */
WHERE
* ... */
GROUP BY
a.Id
, b.title
, c.item
, b.quantity
ORDER BY
a.Id