计算的@balance返回null

时间:2019-01-17 07:57:32

标签: mysql

select 
transaksi_perantara.debet, transaksi_perantara.kredit, 
@balance := @balance + transaksi_perantara.debet - transaksi_perantara.kredit AS balance from transaksi_perantara;

余额列返回NULL。

2 个答案:

答案 0 :(得分:2)

在不知道表的数据结构的情况下,很难直接给出重点答案。

但是,我可以说您的一列中包含空值,以及对具有空值的空结果求和/减去值。

@balance在您的情况下绝对为空

您可以将列替换为IFNULL

select 
  transaksi_perantara.debet, 
  transaksi_perantara.kredit, 
  @balance := IFNULL(@balance,0) + 
    IFNULL(transaksi_perantara.debet, 0) - 
    IFNULL(transaksi_perantara.kredit,0) 
  AS balance from transaksi_perantara;

答案 1 :(得分:0)

select id_trx,debet,kredit,
       @saldo:=@saldo+debet-kredit as saldo from transaksi_perantara,
       (select @saldo:=0) AS variableInit;