3

我将以下内容用作按预期工作的更大查询的一部分。

在我的情况下,一些托运人 ID 可以有多个项目编号,然后所有这些编号都将通过以下汇总。

示例:
发货人 ID 有 3 个项目编号。
在这种情况下,以下将返回 3 件商品(包括它们的详细信息)和此发货人 ID 的 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
/* ... */
4

2 回答 2

3

我错过了什么吗?你会用SUM()

select . . .,
       listagg(. . . ),
       sum(m.NET_PRICE + m.TAX) as total_gross_price
于 2017-06-09T18:51:18.873 回答
0
WITH CTE
     AS (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
               ,c.AMOUNT
           FROM myTable m)
  SELECT Identnummer, Article, SUM (AMOUNT) AS Amount
    FROM CTE
GROUP BY Identnummer, Article
于 2021-01-20T19:28:56.123 回答