【发布时间】:2015-02-18 16:05:17
【问题描述】:
我不确定我的标题问题是否有意义。但我有以下查询。
SELECT mdn,
cost_center,
sum(data_allowance) AS allowance,
sum(mib) AS 'sum_usage',
rate_plan
FROM verizon
GROUP by cost_center
HAVING SUM(mib) > SUM(data_allowance);
这给了我超出允许范围的数据。这是我想要的信息,但每个成本中心都有多行相关联。虽然每一行都可能没有结束,但我仍然想SELECT那些行。另一方面,有些行可能超过了他们的限额,但总的来说,他们没有超过他们的限额,我不想显示该信息。
希望这很清楚,并提前感谢您。
【问题讨论】:
-
我说得对吗:您想添加一些未超出限额的成本中心并排除一些超出限额的成本中心?
-
是的,但我想包括的那些是总共
SUM(mib) > SUM(data_allowance)我想排除那些总共没有结束的。这有意义吗? -
我认为这正是您的代码现在所做的。您在 AS 'sum_usage' 处有语法错误,这就是我所看到的。
-
这里没有语法错误。然而,虽然 MySQL 允许省略,但一般来说,SELECT 子句中包含的任何非聚合列也必须包含在 GROUP BY 子句中。
-
不,没有语法错误,查询有效。每个成本中心都有几条不同的线路。这导致我尝试
GROUP BY cost_center, line,但这并没有给我结果。现在我想我需要对WHERE cost_center IN ( ..使用子查询,我将尝试做一点