Sql 他们,这就是你被困的地方。最简单的方法是使用HAVING子句,它位于groupby之后,充当一种可以应用于聚合列的过滤器(在WHERE子句中无法执行)。如果您有固定金额,您可以这样做: SELECT ORDER#, SUM(PAIDEACH) AS AMOUNT FROM ORDERITEMS GROUP BY ORDER# HAVING SUM(PAIDEACH) > 5;
(请注意,@Bridge指出,在having子句中不能使用列别名Sql 他们,这就是你被困的地方。最简单的方法是使用HAVING子句,它位于groupby之后,充当一种可以应用于聚合列的过滤器(在WHERE子句中无法执行)。如果您有固定金额,您可以这样做: SELECT ORDER#, SUM(PAIDEACH) AS AMOUNT FROM ORDERITEMS GROUP BY ORDER# HAVING SUM(PAIDEACH) > 5;,sql,oracle,sum,Sql,Oracle,Sum,(请注意,@Bridge指出,在having子句中不能使用列别名AMOUNT,必须重复聚合函数SUM)。但是您没有固定的值,您希望使用订单1008的实际总计,因此需要用另一个查询替换该固定值。我将让您执行最后一步…其他人对您的查询中的一些错误进行了评论。我将尝试给出更明确的提示,我认为你需要做些什么才能得到我认为你想要的结果 问题似乎分为不同的部分,首先找到您接近的每个订单的总数,我认为可能是从以下方面开始的: SELECT ORDER#, SUM(PAIDEACH) AS AMOUNT FRO
AMOUNT
,必须重复聚合函数SUM
)。但是您没有固定的值,您希望使用订单1008的实际总计,因此需要用另一个查询替换该固定值。我将让您执行最后一步…其他人对您的查询中的一些错误进行了评论。我将尝试给出更明确的提示,我认为你需要做些什么才能得到我认为你想要的结果
问题似乎分为不同的部分,首先找到您接近的每个订单的总数,我认为可能是从以下方面开始的:
SELECT ORDER#, SUM(PAIDEACH) AS AMOUNT
FROM ORDERITEMS
GROUP BY ORDER#;
。。。查找特定订单的总额:
SELECT SUM(PAIDEACH)
FROM ORDERITEMS
WHERE ORDER# = 1008;
。。。把它们结合在一起,这就是你被困的地方。最简单的方法是使用HAVING
子句,它位于groupby
之后,充当一种可以应用于聚合列的过滤器(在WHERE
子句中无法执行)。如果您有固定金额,您可以这样做:
SELECT ORDER#, SUM(PAIDEACH) AS AMOUNT
FROM ORDERITEMS
GROUP BY ORDER#
HAVING SUM(PAIDEACH) > 5;
(请注意,@Bridge指出,在having子句中不能使用列别名
AMOUNT
,必须重复聚合函数SUM
)。但是您没有固定的值,您希望使用订单1008的实际总计,因此需要用另一个查询替换该固定值。我让你做最后一步…+1。由于该列名为column 35;
,我猜这就是订单号。添加一个where
子句,我认为OP有他的答案!我很确定那里应该有一个子查询,不知何故导致了两个where
子句。我认为应该找到所有的order 35;
和totalpaideach
大于订单1008的总和。999.99只是输出的格式掩码,而不是用于比较的值。(并且,order#
可以作为Oracle的字段名;order
不会,因为这是一个保留字)。+1。由于该列名为column 35;
,我猜这就是订单号。添加一个where
子句,我认为OP有他的答案!我很确定那里应该有一个子查询,不知何故导致了两个where
子句。我认为应该找到所有的order 35;
和totalpaideach
大于订单1008的总和。999.99只是输出的格式掩码,而不是用于比较的值。(并且,order#
可以作为Oracle的字段名;order
不能作为保留字)。
SELECT ORDER#, SUM(PAIDEACH) AS AMOUNT
FROM ORDERITEMS
GROUP BY ORDER#
HAVING SUM(PAIDEACH) > 5;