Суммирование умножения двух падежных выражений

0

Привет Я работаю над проектом, где я хочу суммировать некоторые значения в зависимости от других атрибутов в таблице и ассоциаций. Пока у меня есть:

  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
  )

но это дает мне синтаксическую ошибку, но я не уверен, почему? Любая помощь будет большой.

  • 0
    а синтаксическая ошибка есть?
  • 0
    Это не говорит, это просто говорит, check the manual that corresponds to your MySQL server version for the right syntax to use
Показать ещё 1 комментарий
Теги:
case

1 ответ

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

Я не вижу ничего явно неправильного в самом выражении.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню