내 테이블 중 하나에 created_date
(시간 소인)이 있는데, 그 테이블에는 프로젝트의 duration
열이 있으며, first_day_of_month
열만있는 다른 테이블과 조인해야합니다. 매월 첫날 및 기타 관련 정보를 제공합니다.캘린더 테이블을 사용하여 데이터의 내역보기를 생성하십시오.
표 1
id project_id created_date duration
1 12345 01/01/2015 10
2 12345 20/10/2015 11
3 12345 10/04/2016 13
4 12345 10/08/2016 15
표 2
project_id month_start_date
12345 01/01/2015
12345 01/02/2015
12345 01/03/2015
12345 01/04/2015
...
12345 01/08/2016
예상 결과
project_id month_start_date duration
12345 01/01/2015 10
12345 01/02/2015 10
...
12345 01/10/2015 11
12345 01/11/2015 11
...
12345 01/04/2016 13
12345 01/05/2016 13
12345 01/06/2016 13
...
12345 01/08/2016 15
내가 할 수 t되고 싶어요 o 두 번째 표에 나열된 데이터를 역사적으로 표시합니다. 따라서 기본적으로 month_start_date
과 관련된 동일한 duration
을 반환하는 쿼리를 사용하면 dateadd(month,datediff(month,0,created_date),0) = first_day_of_month
이 충족 될 때까지 값이 반복됩니다. 이에
select table2.project_name,
table2.month_start_date,
table1.duration,
table1.created_date
from table1 left outer join table2
on table1.project_id=table2.project_id
where dateadd(month,datediff(month,0,table1.created_date),0)<=table2.month_start_date
group by table2.project_name,table2.month_start_date,table1.duration,table1.created_date
order by table2.month_start_date asc
하지만 반복 얻을 기록 : 나는
project_id month_start_date duration
12345 01/01/2015 10
12345 01/02/2015 10
...
12345 01/10/2015 10
12345 01/10/2015 11
...
12345 01/04/2016 10
12345 01/04/2016 11
12345 01/04/2016 13
...
12345 01/08/2016 10
12345 01/08/2016 11
12345 01/08/2016 13
12345 01/08/2016 15
누군가가 도와 드릴까요
납니다결과
이 내 쿼리입니다?
감사합니다.
샘플 테이블 데이터와 예상되는 결과를 추가하십시오. 또한 현재 쿼리 시도를 보여주십시오! – jarlh
현재 가지고있는 테이블의 스키마가 도움이된다고 덧붙일 것입니다. –
내가 게시물을 편집했습니다. – Synamoon