【发布时间】:2017-12-04 10:07:51
【问题描述】:
我正在尝试运行以下查询,但出现以下错误:
您的 SQL 语法有错误;检查手册 对应于您的 MySQL 服务器版本,以便使用正确的语法 接近'sum(sl.duration)作为持续时间,sum(sl.quantity_loss)作为 数量损失'
SELECT
lr.uid AS loss_reason_uid,
gl.uid AS gl_uid,
lt.uid AS lt_uid,
SUM(sl.duration * b.marginal_value_downtime) AS value_loss where en.state = 'downtime',
SUM(sl.quantity_loss * p.marginal_value) as value_loss where en.state != 'downtime',
SUM(sl.duration) AS duration,
SUM(sl.quantity_loss) AS quantity_loss,
COUNT(*) AS count
FROM
sub_losses AS sl
知道为什么会出现这种语法错误吗?
【问题讨论】:
-
您需要
group by,但您不能将where用于sum。where子句应用于查询,而不是属性。您可能希望sum超过case表达式。 -
显示您的完整查询这些别名是如何定义的
en,lr,gl... -
您将两个计算值重命名为
value_loss! -
您需要将条件移动到 SUM() 的内部。用例表达式。