使用Group by子句时,我无法显示Total_Quantity_Order。运行下面的脚本时,我没有收到任何错误消息,但包含合计的列没有显示。
我使用子查询来显示订单的总数量。
总数量是每个订单行的数量之和。我创建了一个子查询,因为由于所选字段的数量,groupby语句会很长。
SELECT
A.ORDER AS ORDER,
A.LINE AS LINE,
*FIELD3*
...
...
*FIELD55*
FIELD56 AS QUANTITY
FROM TABLE1.A A
LEFT JOIN (
SELECT A.ORDER AS ORDER,
SUM(FIELD56) AS TOTAL_QUANTITY_BY_ORDER
FROM TABLE1.A A
GROUP BY A.ORDER
) X ON A.ORDER = X.ORDER
WHERE A.ORDER = '140'
2条答案
按热度按时间nhjlsmyf1#
在外部select语句中,您得到的是
FIELD56 AS QUANTITY
,但您将总计(在子查询X中)的别名设置为SUM(FIELD56) AS TOTAL_QUANTITY_BY_ORDER
。就我所见,您实际上并没有在整体选择中显示TOTAL_QUANTITY_BY_ORDER字段。请注意,Field56仍将按它在Table1中的存在形式报告(例如,它将是A.Field56)。
应该是这样的
请注意,这(以及您在问题中的尝试)将为Table1中符合WHERE子句(A.ORDER = '140')的每一行返回1行,而不是为每个订单返回一行。但是,每一行都将包含订单的合计。
nmpmafwu2#
如果**@seanb的回答没有解决您的问题,下面是我的理解:
包含列TOTAL_QUANTITY_BY_ORDER的表X不需要与表A进行JOIN**,因为表X的每一行只包含相同的固定值。
也就是说,查询将是这样的: