gpt4 book ai didi

mysql - 如何在不聚合数据的情况下使用 SQL 使用多列对每一行求和?

转载 作者:行者123 更新时间:2023-11-28 23:20:59 27 4
gpt4 key购买 nike

我在下面运行我的查询以提取数据,我正在寻找 3 列求和。但是,它将数据聚合到一个输出中,而不是为它从中提取的每一行输出数据。

看到第二个select语句,我如何分离数据?

SELECT a.RTL_TRAN_ID, b.LINEITM_SEQ, b.BEGIN_DATE_TIMESTAMP, b.ITEM_ID, b.ITEM_STYLE_ID, b.ITEM_QUANTITY, b.ITEM_BASE_UNIT_PRICE, b.ITEM_UNIT_PRICE, b.ITEM_EXTENDED_AMT, x.RTL_LOC_ID
FROM CMP_PROMO_TRAN_RESULT AS a
JOIN TRN_LINE_ITEM AS b
ON a.RTL_TRAN_ID = b.RTL_TRANS_ID
JOIN TRN_TRANSACTION AS x
ON x.RTL_TRANS_ID = a.RTL_TRAN_ID
WHERE a.PROMOTION_ID IN (51)
AND b.lineitm_typcode = 'sale'
AND b.item_base_unit_price <> b.item_unit_price
ORDER BY a.RTL_TRAN_ID

SELECT
SUM(b.ITEM_QUANTITY) * SUM(b.ITEM_BASE_UNIT_PRICE) - SUM(b.ITEM_EXTENDED_AMT)
AS 'Discount Given'
FROM CMP_PROMO_TRAN_RESULT AS a
JOIN TRN_LINE_ITEM AS b
ON a.RTL_TRAN_ID = b.RTL_TRANS_ID
WHERE a.PROMOTION_ID IN (51)

最佳答案

如果您使用SUM(),您是在告诉MySQL 将同一组的数据聚合 为一个数字。如果您还没有添加一个隐式 GROUP BY

在您的情况下,您似乎不想聚合。那你应该重写您对类似这样的查询(即只需删除 SUM() 聚合)。

更新查询(更多列支持调试)

SELECT 
b.ITEM_QUANTITY
, b.ITEM_BASE_UNIT_PRICE
, b.ITEM_EXTENDED_AMT
, b.ITEM_QUANTITY * b.ITEM_BASE_UNIT_PRICE - b.ITEM_EXTENDED_AMT
AS 'Discount Given'
FROM
CMP_PROMO_TRAN_RESULT AS a
JOIN TRN_LINE_ITEM AS b
ON a.RTL_TRAN_ID = b.RTL_TRANS_ID
WHERE a.PROMOTION_ID IN (51)

关于mysql - 如何在不聚合数据的情况下使用 SQL 使用多列对每一行求和?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41599246/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com