집 >데이터 베이스 >MySQL 튜토리얼 >소스 데이터의 차이에도 불구하고 SQL Server 2000에서 완전한 날짜 범위 테이블을 생성하는 방법은 무엇입니까?
$startDate부터 $endDate까지의 날짜와 0 값을 갖는 추가 자리 표시자를 포함하는 임시 테이블을 생성하기 위한 요구 사항 열은 고객 테이블 삽입 날짜의 잠재적인 공백으로 인해 문제가 발생합니다.
이를 극복하려면 다음을 고려하세요. 다음 접근 방식:
범위 변수 선언: 이미 수행한 것처럼 다음 선언을 사용하여 최소 및 최대 삽입 날짜를 캡처합니다.
declare $startDate set $startDate = select min(InsertDate) from customer declare $endDate set $endDate = select max(InsertDate) from customer
더미 날짜 테이블 만들기: 임시 테이블의 스키마를 루프를 사용하여 $startDate부터 $endDate까지의 날짜로 더미 테이블을 만듭니다.
CREATE TABLE #dates ( Month DATE, Trials INT DEFAULT 0, Sales INT DEFAULT 0 );
더미 날짜 테이블 채우기: 완전성, 커서를 사용하여 $startDate에서 $endDate까지 날짜 범위를 반복하고 각 날짜를 더미에 삽입합니다. table:
DECLARE @d DATE = $startDate; WHILE @d <= $endDate BEGIN INSERT INTO #dates (Month) VALUES (@d); SET @d = DATEADD(DAY, 1, @d); END;
이 접근 방식은 고객 테이블의 공백에 관계없이 지정된 범위 내에서 전체 날짜 범위를 동적으로 생성합니다. 그런 다음 임시 기간 테이블을 채우기 위한 소스로 이 더미 테이블을 사용할 수 있습니다.
위 내용은 소스 데이터의 차이에도 불구하고 SQL Server 2000에서 완전한 날짜 범위 테이블을 생성하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!