2014-12-03 46 views
0

我有以下查询:PHP/MySQL的:值0,如果记录尚未在数据库

$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。

回答

1

使用IFNULL():当net_amount IS NOT NULL,则其他0结束net_amount)FROM fin_costos WHERE月份=

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 
+0

工程很棒。非常感谢! – user2952715 2014-12-03 14:10:26

0

尝试这

$查询=“SELECT(SELECT SUM(案件 '1' AND (当net_amount IS NOT NULL,然后net_amount else 0结束时)FROM em2_fin_costs WHERE month ='1'AND group_of_costos ='general'AND year_analysis ='2014'AND + year_analysis ='2014')+ )总计“;

+0

谢谢。我一直在为第一个SELECT获取NULL。 – user2952715 2014-12-03 14:00:34

相关问题