簡體   English   中英

Oracle SQL:使用Xmlagg選擇時出現錯誤,不是單組組函數

[英]Oracle SQL: error not a single-group group function in Select with Xmlagg

我有一個表設置, i.AIN為每一列p.S_ID返回i.AIN列的多行,因此我試圖將它們匯總起來,以便為每個唯一的i.AIN記錄僅獲得一行

我無法使用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

非常感謝您對此提供的任何幫助-非常感謝,
麥克風

沒有真實的數據和表,很難提供一個可行的例子。 您必須將聚合分為兩個級別。 首先,創建內聯視圖並計算小計,然后在下一級將結果聚合為一個字符串。

  select xmlagg(....
            ) 
            from (
            select i.AIN as ain,  SUBSTR(a.AIN_NAME, 1, 50) as ain_name
                , SUM(i.UNITS) sum_units 
                , TO_CHAR(max(i.PRICE), 'FM9,990.00') || ' + ' || TO_CHAR(max(i.PRICE_TAX), 'FM9,990.00') || ' USt = ' || TO_CHAR((max(i.PRICE) + max(i.PRICE_TAX)), 'FM9,990.00') 
               ... etc
               from /*joins*/
               GROUP BY
              p.S_ID
            , i.AIN
            , a.AIN_NAME 

            ) 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM