2010-04-22 6 views
0

매월보고해야 할 통계가 있습니다. 거기에없는 통계에 대해 0을 반환하는 쿼리가 필요합니다. 필자가 알고있는 유일한 방법은 SQL을 사용하여 지정된 기간 내에 요일 목록을 생성하고보고 할 통계 데이터를 LEFT JOIN으로 생성하는 것입니다.MySQL 날짜 선택, 통계 데이터에 합류 - 어떻게?

문제는 .... 나는 그런 식의 테이블을 선택하지 않았다. 어떻게해야합니까?

+3

http://stackoverflow.com/questions/2693320/sql-date-rows-for-inactivity-days와 유사합니다. http://stackoverflow.com/questions/75752/what-is-themost-straightforward -way-to-pad-empty-dates-in-sql-results-on-either 중 하나, http://stackoverflow.com/questions/2670183/displaying-zero-valued-months-with-sql, etc. –

답변

0

필자는 SQL을 사용하여 주어진 기간 동안 가지고있는 데이터를 가져 와서 PHP 측면의 모든 것을 처리했습니다. 정확히 내가 원하는 것은 아니지만 작동합니다.

0

는 null가됩니다 아마 당신의 반환 값이 존재하지 않았던 통계에 대한 모든 당신이 null이 반환 0, 그렇지 않으면 실제 결과

 
select s.Name , IFNULL(d.Value, 0) as Value 
from Statustic s 
LEFT JOIN t_Data d on (d.Stat_ID=s.ID) 

를 반환하고 경우에 당신이 할 수있는 널 (null)로 반환 된 값을 비교해야하고, 반환 된 값을 비교 값이 NULL 사용하는 경우 http://dev.mysql.com/doc/refman/5.0/en/comparison-operators.html#function_isnull

0

더 많은 읽기이 링크를 사용

SELECT IFNULL(statistic, 0) AS statistic FROM myTable; 
,