0
我有一個表設置,它爲每個列返回多列i.AIN
p.S_ID
,所以我試圖聚合這些以獲得每行唯一的一行i.AIN記錄。Oracle SQL:使用Xmlagg選擇錯誤不是單組功能選擇使用Xmlagg
我不能使用Listagg,因爲我超過了字符數限制。
與本網站的信息,我創建了下面的查詢,但我得到以下錯誤:
"ORA-00937: not a single-group group function"
有人能告訴我如何改變我的GROUP BY這裏,使這項工作或如果我的查詢還有其他錯誤?
我的查詢(縮短):
ALTER SESSION ENABLE PARALLEL QUERY;
SELECT
p.S_ID AS ID
, XMLELEMENT
(
"AINs", XMLAGG
(
XMLELEMENT
(
"AIN", i.AIN ||
'-nl-Article: ' || SUBSTR(a.AIN_NAME, 1, 50) || '...' ||
'-nl-Quantity: ' || SUM(i.UNITS) ||
'-nl-Price: ' || TO_CHAR(i.PRICE, 'FM9,990.00') || ' + ' || TO_CHAR(i.PRICE_TAX, 'FM9,990.00') || ' USt = ' || TO_CHAR((i.PRICE + i.PRICE_TAX), 'FM9,990.00') ||
'-nl------' ||
'-nl-Subtotal: ' || TO_CHAR((i.PRICE * SUM(i.UNITS)), 'FM9,990.00') || ' + ' || TO_CHAR((i.PRICE_TAX * SUM(i.UNITS)), 'FM9,990.00') || ' USt = ' || TO_CHAR(((i.PRICE + i.PRICE_TAX) * SUM(i.UNITS)), 'FM9,990.00')
)
)
)/*.EXTRACT('//text()')*/ AS Details
FROM
ITEMS i
LEFT JOIN
AINS a
ON i.AIN = a.AIN
LEFT JOIN
PKGS p
ON i.SHIPMENT = p.SHIPMENT
WHERE
/*...*/
GROUP BY
p.S_ID
, i.AIN
, a.AIN_NAME
, i.UNITS
, i.PRICE
, i.PRICE_TAX
ORDER BY
p.S_ID
非常感謝任何幫助 - 這是大加讚賞,
邁克
我想你應該向我們展示XML結構,沒有它就很難說。 – tukan