【发布时间】:2014-09-22 08:14:16
【问题描述】:
我将在我的选择查询中使用 IFNULL 检查
我想这样执行,当 sum 为 null 时打印 0
这是我的全部查询
SELECT
IFNULL(SELECT SUM(TOT_SALES_PRICE) FROM TB_DEALER_SALES_MNG WHERE DEALER_SEQ = 7 AND DATE_FORMAT(SALES_DATE, '%Y%m' )= DATE_FORMAT(NOW(), '%Y%m') ,0)
)AS TOT_SALES_PRICE
有语法错误但我不知道
这是我没有 IFNULL 的查询,它工作得很好 请给我建议
SELECT
(SELECT SUM(TOT_SALES_PRICE) FROM TB_DEALER_SALES_MNG WHERE DEALER_SEQ = 7 AND DATE_FORMAT(SALES_DATE, '%Y%m' )= DATE_FORMAT(NOW(), '%Y%m')
)AS TOT_SALES_PRICE
【问题讨论】:
-
子查询返回的行是否(或可以有)多于一行?
-
您能否尝试在子查询周围添加一组额外的括号,看看是否仍然出现错误?
IFNULL((SELECT ....%m')),0) -
只返回一行
-
我打赌@scragar 是正确的...把整个子查询放在括号中。
-
你是这个意思吗? SELECT (IFNULL(SELECT SUM(TOT_SALES_PRICE) FROM TB_DEALER_SALES_MNG WHERE DEALER_SEQ = 7 AND DATE_FORMAT(SALES_DATE, '%Y%m')= DATE_FORMAT(NOW(), '%Y%m') ,0) )AS TOT_SALES_PRICE