2016-12-07 3 views
0
select 
tele_plan.id as value, 
tele_plan.plan_name as label, 
tele_plan.plan_cost as c, 
tele_plan.plan_details as d, 
COALESCE (tele_plan.plan_cost - sum(tele_payment_items.amount) as balance ,0) from `tele_plan_select` 
    inner join `tele_plan` on `tele_plan`.`id` = `tele_plan_select`.`teleplan_id` 
    left join `tele_payment_defs` on `tele_payment_defs`.`telereg_id` = `tele_plan_select`.`telereg_id` 
    left join `tele_payment_items` on `tele_payment_items`.`telepaymentdefs_id` = `tele_payment_defs`.`id` 
    and 
    `tele_payment_items`.`teleplan_id` = `tele_plan`.`id` 
    where `tele_plan_select`.`telereg_id` = 9 
    group by `tele_plan`.`id` 

Здесь я использую рамки laravel. Я думаю, проблема здесь с COALESCE. Я пытаюсь найти баланс, вычитая два значения столбца. Если ничего нет, как balance, он должен быть установлен в 0, это то, что я пытаюсь сделать.Ошибка COALESCE с использованием кронштейна

+0

Добро пожаловать в переполнение стека! Сначала вы можете взять [тур] (http://stackoverflow.com/tour) и узнать [Как задать хороший вопрос] (http://stackoverflow.com/help/how-to-ask) и дать нам * * сообщение об ошибке ** пожалуйста. Нам будет легче помочь вам. –

ответ

0

Это неправильное использование COALESCE. Изменить его как

COALESCE (tele_plan.plan_cost, 0) - COALESCE(SUM(tele_payment_items.amount), 0) as balance 
+0

Да, его работа. Спасибо. –