SQL에서 조회시
name sdate edate
사용자1 20210104 20210104
사용자2 20210208 20210210
사용자3 20210302 20210302
이렇게 조회된 임시 데이블 값을 가지고 sdate 와 edate가 같지 않은 경우
sdate에 edate 일자까지 채워 넣고 싶습니다.
아래와 같이
name sdate edate
사용자1 20210104 20210104
사용자2 20210208 20210210
사용자2 20210209 20210210
사용자2 20210210 20210210
사용자3 20210302 20210302
edate는 동일값 혹은 NULL로 출력 되어도 무방
구글에서 시작일 종료일을 가지고 중간에 일자를 채줘 넣는 소스가 있는데
이걸 어떻게 응용해야 할지 모르겠습니다.
DECLARE @StartDateTime varchar(10)
DECLARE @EndDateTime varchar(10)
SET @StartDateTime = '20200831'
SET @EndDateTime = '20200904';
WITH DateRange(Dates, DateWD) AS
(
SELECT @StartDateTime as Date, convert(varchar(10),DATEPART(WEEKDAY, @StartDateTime),112)
UNION ALL
SELECT convert(varchar(10),DATEADD(d,1,Dates),112), convert(varchar(10),DATEPART(WEEKDAY, DATEADD(d,1,Dates)),112)
FROM DateRange
WHERE Dates < @EndDateTime
)
SELECT Dates, DateWD,DATENAME(WEEKDAY,Dates)
FROM DateRange
OPTION (MAXRECURSION 0)