Sql 在拉威尔中被零除
我想问,为什么我可以使用第一个SQL命令,而第二个命令失败了? 注意:数据为空时发生错误 成功 误差除零Sql 在拉威尔中被零除,sql,laravel-5,select,Sql,Laravel 5,Select,我想问,为什么我可以使用第一个SQL命令,而第二个命令失败了? 注意:数据为空时发生错误 成功 误差除零 $barang = DB::select('SELECT barang_keluar_tmp.id as id, data_barang.nama_barang as nama_barang, barang_keluar_tmp.kode as kode_barang, barang_keluar_tmp.qty as jumlah, barang_keluar_tmp.total_harg
$barang = DB::select('SELECT barang_keluar_tmp.id as id, data_barang.nama_barang as nama_barang, barang_keluar_tmp.kode as kode_barang, barang_keluar_tmp.qty as jumlah, barang_keluar_tmp.total_harga as total_harga, barang_keluar_tmp.total_harga_awal as total_harga_awal, data_jasa.nama_jasa as nama_jasa, barang_keluar_tmp.diskon as diskon, SUM(h.masuk - (i.keluar + barang_keluar_tmp.qty)) as stok
FROM barang_keluar_tmp
JOIN data_barang on data_barang.kode_barang = barang_keluar_tmp.kode
LEFT JOIN data_jasa on barang_keluar_tmp.kode = data_jasa.kode_jasa
LEFT JOIN
(SELECT barang_masuk.kode_barang, SUM(barang_masuk.qty) as masuk from barang_masuk group by barang_masuk.kode_barang)
AS h ON barang_keluar_tmp.kode = h.kode_barang
LEFT JOIN
(SELECT barang_keluar.kode, SUM(barang_keluar.qty) as keluar from barang_keluar group by barang_keluar.kode)
AS i ON barang_keluar_tmp.kode = i.kode
WHERE barang_keluar_tmp.keterangan = "'.$user.'"
ORDER By barang_keluar_tmp.created_at ASC');
在sum()上使用coalesce()
$barang = DB::select('SELECT barang_keluar_tmp.id as id, data_barang.nama_barang as nama_barang, barang_keluar_tmp.kode as kode_barang, barang_keluar_tmp.qty as jumlah, barang_keluar_tmp.total_harga as total_harga, barang_keluar_tmp.total_harga_awal as total_harga_awal, data_jasa.nama_jasa as nama_jasa, barang_keluar_tmp.diskon as diskon, SUM(h.masuk - (i.keluar + barang_keluar_tmp.qty)) as stok
FROM barang_keluar_tmp
JOIN data_barang on data_barang.kode_barang = barang_keluar_tmp.kode
LEFT JOIN data_jasa on barang_keluar_tmp.kode = data_jasa.kode_jasa
LEFT JOIN
(SELECT barang_masuk.kode_barang, SUM(barang_masuk.qty) as masuk from barang_masuk group by barang_masuk.kode_barang)
AS h ON barang_keluar_tmp.kode = h.kode_barang
LEFT JOIN
(SELECT barang_keluar.kode, SUM(barang_keluar.qty) as keluar from barang_keluar group by barang_keluar.kode)
AS i ON barang_keluar_tmp.kode = i.kode
WHERE barang_keluar_tmp.keterangan = "'.$user.'"
ORDER By barang_keluar_tmp.created_at ASC');
SELECT barang_keluar_tmp.id as id
, data_barang.nama_barang as nama_barang
, barang_keluar_tmp.kode as kode_barang
, barang_keluar_tmp.qty as jumlah
, barang_keluar_tmp.total_harga as total_harga
, barang_keluar_tmp.total_harga_awal as total_harga_awal
, data_jasa.nama_jasa as nama_jasa, barang_keluar_tmp.diskon as diskon
, SUM(coalesce(h.masuk, 0) - coalesce((i.keluar + barang_keluar_tmp.qty), 0)) as stok
FROM barang_keluar_tmp
JOIN data_barang on data_barang.kode_barang = barang_keluar_tmp.kode
LEFT JOIN data_jasa on barang_keluar_tmp.kode = data_jasa.kode_jasa
LEFT JOIN
(SELECT barang_masuk.kode_barang
, SUM(barang_masuk.qty) as masuk
from barang_masuk
group by barang_masuk.kode_barang)
AS h ON barang_keluar_tmp.kode = h.kode_barang
LEFT JOIN
(SELECT barang_keluar.kode, SUM(barang_keluar.qty) as keluar
from barang_keluar
group by barang_keluar.kode)
AS i ON barang_keluar_tmp.kode = i.kode
WHERE barang_keluar_tmp.keterangan = "'.$user.'"
ORDER By barang_keluar_tmp.created_at ASC