2016-12-07 1 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` 

Ich benutze Laravel-Framework hier. Ich schätze das Problem ist hier mit der COALESCE. Ich versuche, das Gleichgewicht zu finden, indem ich zwei Spaltenwerte subtrahiere. Wenn es nichts zurück gibt als balance sollte es auf 0 eingestellt werden, das ist, was ich versuche zu tun.COALESCE-Fehler bei Verwendung einer Klammer

+0

Willkommen bei Stack Overflow! Sie können zuerst die [Tour] (http://stackoverflow.com/tour) nehmen und [Wie Sie eine gute Frage stellen] (http://stackoverflow.com/help/how-to-ask) erfahren und uns geben * * Fehlermeldung ** bitte. Es wird einfacher für uns, Ihnen zu helfen. –

Antwort

0

Das COALESCE Nutzung falsch ist. Ändern Sie es wie

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

Ja, es funktioniert. Vielen Dank. –

Verwandte Themen