2017-06-09 19 views
2

我將以下內容用作按預期工作的較大查詢的一部分。將Select添加到選擇中的Listagg的每一行

在我的情況下,一些出貨單編號可以有多個商品編號,然後通過下面的編號進行彙總。

例如:
發貨人編號有3個編號。
在這種情況下,以下將返回3個項目(包括它們的詳細信息)和3個此貨運單ID的總價格。

是否有任何方式我可以總結每個航運ID的總價格
假設上面例子中的總價格是10.00,20.00和30.00,那麼我希望看到這個貨運單ID爲60.00的總數。
如果更容易,可以將其顯示在單獨的列中。

我嘗試了多種方法,但無法使其正常工作。

我的查詢:

SELECT 
    c.SHIPPER_ID AS Identnummer 
    , LISTAGG 
    (
     'ITEM NO.: ' || m.ITEM_NUMBER || 
     ' -nl-ARTICLE NAME: ' || a.ARTICLE_NAME || 
     ' -nl-NET PRICE: ' || m.NET_PRICE || 
     ' -nl-TAX: ' || NVL(m.TAX, 0) || 
     ' -nl-GROSS_PRICE: ' || (m.NET_PRICE + m.TAX), 
     ' -nl--nl-' 
    ) WITHIN GROUP (ORDER BY m.SHIPMENT_ID) AS Article 
FROM 
    myTable m 
/* ... */ 

回答

2

我缺少的東西?你會只使用SUM()

select . . ., 
     listagg(. . .), 
     sum(m.NET_PRICE + m.TAX) as total_gross_price 
+0

謝謝,戈登。也許我沒有很好地描述它。假設我有100個發貨人ID。然後他們中的一些人只有一件物品,所以這裏這個貨運人ID的總金額與該物品的總價相同。但是,如果發件人ID有多個項目,那麼我需要計算他們的總和,在我想的列表中。您的方法不起作用,因爲listag以外沒有總價。我看錯了嗎? – keewee279

+1

@ keewee279。 。 。你有組件值,所以你可以把這個表達式放在'SUM()'中。 –

+0

謝謝。對不起,我是Oracle新手。因此,如果貨運單ID有多個淨價格和稅金,這也可以起作用。 – keewee279

相關問題