Я пытаюсь создать запрос, который делает сумму, если определенный параметр устанавливается. Например:
SELECT SUM(IF(<condition>,field,field)) AS total_value
... который работает правильно.
Но у меня есть больше чем одно условие в ЕСЛИ (), как:
SELECT SUM(IF(<condition> <condition>,field,field)) AS total_value
.. который не работает, у Вас могла быть какая-либо идея, каков должен быть правильный запрос для этого.
Обновление
Извините за неправильные запросы правильные запросы
Мой текущий запрос выглядит примерно так: ВЫБЕРИТЕ СУММУ (ЕСЛИ (condition1, поле, поле)) AS total_value, который работает правильно.
Но у меня есть больше чем одно условие в том, ЕСЛИ (), как ИЗБРАННАЯ СУММА (ЕСЛИ (condition1 condition2, поле, поле)) AS total_value, который не работает, у Вас могла быть какая-либо идея, каков должен быть правильный запрос для этого.
Посмотрите на оператор Case:
Select Sum( Case When column = test Then column2 Else column3 End )
...
Если у вас несколько условий, вы все равно можете использовать case:
Select Sum( Case
When column1 = 'Foo' Then column2
When column1 = 'Bar' Then column3
When column1 = 'Gamma' Then column2 + column3
Else column3 End )
From ...
В этом сценарии, если столбец1 не null и не равен 'Foo', то он перейдет к следующему оператору When. Если этот тест не верен, то он переходит к следующему и так далее.
SELECT SUM(IF(<condition1>,
IF(<condition2>,
<field1>,
<field2>),
<field2>)) AS total_value
select sum(case when a = b and x = y then field1 + field2 else 0 end)
Обновление:
Возможно, вы имеете в виду следующее:
select sum(case when a = b then field1 else field2 end)