总结两个案例表达式的乘法

时间:2018-02-15 13:27:22

标签: mysql sql case

您好我正在开发一个项目,我希望根据表中的其他属性和它的关联来总结一些值。到目前为止,我有:

  SELECT (
    SUM(
      (CASE WHEN models.type = 'type_1' THEN -1 ELSE 1 END) *
      (CASE WHEN models.currency_id = other_models.currency_id THEN ROUND(models.amount * other_models.conversion, 2) ELSE models.amount END)
    ) AS difference
  )

但是这给了我一个语法错误,但我不确定为什么?任何帮助都会很棒。

1 个答案:

答案 0 :(得分:1)

一种可能性是SELECT中有其他列。围绕整个表达式不需要括号:

SELECT SUM((CASE WHEN models.type = 'type_1' THEN -1 ELSE 1 END) *
           (CASE WHEN models.currency_id = other_models.currency_id THEN ROUND(models.amount * other_models.conversion, 2) ELSE models.amount END)
          ) AS difference

我在表达本身中看不出任何明显的错误。