此product_id没有行。结果不返回任何行而不是SUM = 0.
SELECT COALESCE(SUM(amount), 0) FROM store2product WHERE product_id = 6706434 GROUP BY product_id;
有没有办法让结果= 0?
答案 0 :(得分:1)
表product_id = 6706434
中没有store2product
的记录。在按product_id
分组时,您会在此查询中找到每个product_id
一个结果行。由于找不到product_id
,因此不会返回任何行。
简单解决方案:删除GROUP BY
。
SELECT
COALESCE(SUM(amount), 0)
FROM store2product
WHERE product_id = 6706434;
现在你得到一个结果行。
答案 1 :(得分:0)
尝试这个技巧..
您案件的架构
CREATE TABLE #TAB (ID INT, AMT DECIMAL(18,2))
INSERT INTO #TAB
SELECT 1,1200
UNION ALL
SELECT 1,120
UNION ALL
SELECT 3, 100
现在查询表格
SELECT SUM(ISNULL(AMT,0)) AS AMT FROM (
SELECT ID, SUM(AMT)AMT FROM #TAB WHERE ID =2 GROUP BY ID
UNION ALL
SELECT NULL AS ID, NULL AS AMT
)A