Laravel - Выбор конкретного случая в SUM Aggregate - PullRequest
0 голосов
/ 01 июля 2019

У меня есть этот запрос

            $totalrevenue = DB::table("vw_revenue_report")
               ->select(DB::raw("SUM(amount) as total"))
               ->get();  

Но я хочу использовать оператор Select Case или If. Что я хочу, так это то, что при попытке выполнить суммирование, если канал (поле) равен 9mobile, он должен делить сумму на 100. В противном случае он должен просто составлять сумму.

            $totalrevenue = DB::table("vw_revenue_report")
               ->select(DB::raw("SUM((CASE WHEN (channel = '9mobile') THEN 'amount*1/100' ELSE 'amount' END) as total"))
               ->get();  

Я получил ошибку, показанную ниже:

"SQLSTATE [42000]: синтаксическая ошибка или нарушение прав доступа: 1064 У вас есть ошибка в вашем синтаксисе SQL; проверьте руководство, соответствующее вашей версии сервера MariaDB, чтобы найти правильный синтаксис, близкий к 'как общее от vw_revenue_report' в строке 1 (SQL: выберите SUM ((CASE WHEN (канал = '9mobile') THEN 'количество * 1/100' ELSE 'количество' END) как общее значение от vw_revenue_report)

Как мне решить эту проблему?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...