#mysql #laravel #eloquent #laravel-8
Вопрос:
У меня есть модель продажи с price
quantity
status
атрибутами и
Я хочу вернуть общий доход из таблицы продаж (приведенный ниже запрос возвращает желаемый результат).
SELECT SUM(case when status = 1 then price * quantity when status = 2 then price * quantity * -1 else 0 end) as total
FROM sales;
Я попытался использовать select(DB::raw())
, но он не вернул номер, так как я не мог использовать sum()
функцию
Ответ №1:
Предположим, у вас есть модель продажи, попробуйте что-то вроде :
$result = Sale::select(DB::raw('SUM(case when status = 1 then price * quantity when status = 2 then price * quantity * -1 else 0 end) as total'))
->get();