我有以下查询:
$query = "SELECT (SELECT SUM(net_amount) FROM fin_costos WHERE month='1' AND group_of_costos='general' AND year_analysis='2014' ) +
(SELECT SUM(net_amount) FROM em2_fin_costs WHERE month='1' AND group_of_costos='general' AND year_analysis='2014') AS total";
它基本上是从不同表检索的 2 个值的 SUM
。
当在其中一个 SELECT
语句中,记录尚未存在于数据库中并创建 NULL
时,即使第二个 SELECT
> 获取一个值,创建一个 NULL
。
问题:如果记录尚未存在于数据库中,如何将 SELECT
语句的结果转为 0。
最佳答案
使用IFNULL()
:
SELECT IFNULL((SELECT SUM(net_amount) FROM fin_costos WHERE month='1' AND group_of_costos='general' AND year_analysis='2014' ), 0) +
IFNULL((SELECT SUM(net_amount) FROM em2_fin_costs WHERE month='1' AND group_of_costos='general' AND year_analysis='2014'), 0) AS total
关于PHP/MYSQL : Value 0 if record isn't yet in database,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27272853/