2017-06-09 6 views
2

次のように、目的に応じてより大きなクエリの一部として使用します。SelectでListaggの各行に合計を加算します。

私のケースでは、いくつかの荷送人IDは複数の明細番号を持つことができます。これらの番号は、すべて以下で集計されます。

例:
荷送人IDには3つの項目番号があります。
このケースでは、この荷送人IDの3つのアイテム(その詳細を含む)と3つの総額が返されます。

の送料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

ありがとう、ゴードン。たぶん私はそれをうまく説明していないかもしれない。荷送人IDが100個あるとします。次に、それらのうちのいくつかは1つのアイテムしか持たないので、この荷送人IDの合計はアイテムの総額と同じです。しかし、荷送人IDに複数の明細がある場合、私はそれらの合計を計算する必要があります。あなたのアプローチは、リストの外に総額がないためにはうまくいかないでしょう。それが間違っているのですか? – keewee279

+1

@ keewee279。 。 。コンポーネントの値があるので、その式を 'SUM()'に入れることができます。 –

+0

ありがとうございます。申し訳ありませんが、私はオラクルには新しいです。これは、荷送人IDに対して複数の正味価格と税がある場合にも有効です。 – keewee279

関連する問題