【发布时间】:2012-05-05 20:16:37
【问题描述】:
我有一些统计数据需要每月报告一次。我需要我的查询为不存在的统计信息返回 0。我知道的唯一方法是使用 SQL 生成指定时间段内的天数列表和LEFT JOIN 我需要报告的统计数据。
问题是......我从来没有从这样的表中选择过......我该怎么做?
【问题讨论】:
我有一些统计数据需要每月报告一次。我需要我的查询为不存在的统计信息返回 0。我知道的唯一方法是使用 SQL 生成指定时间段内的天数列表和LEFT JOIN 我需要报告的统计数据。
问题是......我从来没有从这样的表中选择过......我该怎么做?
【问题讨论】:
比较你的返回值,对于从不存在的统计,你的返回值可能为null,你只需要比较返回值和null,如果null返回0,否则返回真实结果
选择 s.Name , IFNULL(d.Value, 0) 作为值 来自Statistics LEFT JOIN t_Data d on (d.Stat_ID=s.ID)您可以使用此链接阅读更多内容 http://dev.mysql.com/doc/refman/5.0/en/comparison-operators.html#function_isnull
【讨论】:
如果值是 NULL 使用
SELECT IFNULL( statistic, 0 ) AS statistic FROM myTable;
【讨论】:
我最终只是使用 SQL 来提取给定时间段内的数据并在 PHP 端处理其他所有内容。不完全是我想要的,但它确实有效。
【讨论】: