我将以下内容用作更大查询的一部分,该查询按预期工作。
在我的情况下,一些托运人ID可以有多个项目编号,然后通过以下内容汇总。
示例:
托运人ID有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
/* ... */
答案 0 :(得分:3)
我错过了什么吗?你会使用SUM()
:
select . . .,
listagg(. . . ),
sum(m.NET_PRICE + m.TAX) as total_gross_price
答案 1 :(得分: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