집 >데이터 베이스 >MySQL 튜토리얼 >누락된 데이터에 대해 채워진 0 값으로 포괄적인 날짜 범위를 생성하는 방법은 무엇입니까?
입력된 데이터로 포괄적인 날짜 범위 생성
데이터베이스에서는 특정 날짜 범위 내의 데이터를 검색해야 하는 경우가 많습니다. 그러나 특정 날짜에 대한 데이터가 누락된 경우 열을 비워 두는 대신 0을 표시하는 것이 유용할 수 있습니다. 이렇게 하면 전체 날짜 범위가 표시되어 데이터에 대한 보다 포괄적인 보기를 제공할 수 있습니다.
문제:
날짜 및 값 데이터가 포함된 테이블이 있고 필요한 사항이 있습니다. 지정된 범위 내의 모든 날짜를 검색합니다. 특정 날짜에 대한 행이 없으면 모든 열에 대해 0을 표시하려고 합니다.
해결책:
이는 다음을 사용하여 날짜 집합을 생성하여 달성할 수 있습니다. 재귀 공통 테이블 표현식(CTE)을 사용한 다음 기존 데이터 테이블과 왼쪽 조인을 수행합니다. CTE는 지정된 범위 내에서 일련의 날짜를 생성합니다. 왼쪽 조인은 생성된 날짜를 기존 행과 일치시키고 ISNULL() 함수를 사용하여 누락된 값을 0으로 채웁니다.
;with d(date) as ( select cast('10/01/2012' as datetime) union all select date+1 from d where date < '10/15/2012' ) select t.ID, d.date CDate, isnull(t.val, 0) val from d left join temp t on t.CDate = d.date order by d.date OPTION (MAXRECURSION 0)
MAXRECURSION 옵션은 허용되는 최대 재귀 반복 횟수를 지정합니다. 이 경우 날짜 범위가 작기 때문에(15일) 0으로 설정하여 무제한 반복을 허용할 수 있습니다.
이 쿼리를 실행하면 지정된 날짜 내의 모든 날짜를 포함하는 완전한 데이터 세트를 얻을 수 있습니다. 범위. 누락된 날짜는 0으로 채워져 데이터를 포괄적으로 표시합니다.
위 내용은 누락된 데이터에 대해 채워진 0 값으로 포괄적인 날짜 범위를 생성하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!