SQL 쿼리로 작성할 수도 있지만 JSL에서도 수행할 수 있습니다. 다음은 가능한 옵션 중 하나입니다(더 간단하고 복잡한 옵션이 많이 있음).
Names Default To Here(1);
dt = New Table("Project Status",
Add Rows(5),
New Column("Project", Character, "Nominal", Formula("Project " || Char(Row()))),
New Column("Start Date", Numeric, "Ordinal", Format("m/d/y", 12), Formula(Date Increment(Today() - In Days(Row() * 10), "Day"))),
New Column("End Date", Numeric, "Ordinal", Format("m/d/y", 12), Formula(Date Increment(Today() + In Days(Row() * 10), "Day")))
);
dt << Run Formulas;
:Start Date << Delete Formula;
:End Date << Delete Formula;
// Add monthyear column based on Start Date
new_col1 = dt << New Column("MonthYear1",
Numeric,
"Ordinal",
Format("m/y", 12),
Formula(Date DMY(1, Month(:Start Date), Year(:Start Date)))
);
new_col2 = dt << New Column("MonthYear2",
Numeric,
"Ordinal",
Format("m/y", 12),
Formula(Date DMY(1, Month(:End Date), Year(:Start Date)))
);
// calculation should be based on min date and max date found from dataset in my opinion
// not based on the found values, but this is easier so I'll use this
date_months = Associative Array(new_col1);
date_months << Insert(Associative Array(new_col2));
dt << Delete Columns({"MonthYear1", "MonthYear2"});
aa_results = Associative Array();
For Each({month_start}, date_months << get keys,
// last day of month
max_day = In Days(Days In Month(Year(month_start), Month(month_start))) + month_start - Time Of Day(month_start);
// some logic to get projects
r = dt << Get Rows Where((:Start Date <= month_start & :End Date >= month_start) | (month_start <= :Start Date < max_day));
aa_results[month_start] = N Items(r);
);
dt_results = New Table("Results",
New Column("MY", Numeric, Continuous, Values(aa_results << get keys)),
New Column("ProjInProg", Numeric, Continuous, Values(aa_results << get values)),
);

안녕하세요, 제가 해결하고 있는 문제를 보여주기 위해 이 예제 데이터 세트를 만들었습니다.
New Table("Project Status",
Add Rows(5),
New Column("Project", Character, "Nominal", Formula("Project " || Char(Row()))),
New Column("Start Date", Numeric, "Ordinal", Format("m/d/y", 12), Formula(Date Increment( Today() - In Days( Row() * 10 ), "Day" ))),
New Column("End Date", Numeric, "Ordinal", Format("m/d/y", 12), Formula(Date Increment( Today() + In Days( Row() * 10 ), "Day" )))
);다음 코드는 5개의 서로 다른 프로젝트에 대한 시작 날짜와 종료 날짜가 포함된 5x3 데이터 테이블을 생성합니다. 내가 하고 싶은 것은 데이터 세트의 모든 월/연도 콤보에 대해 "진행 중인 프로젝트" 수를 얻는 것입니다. 즉, 시작 날짜인 모든 프로젝트는 종료 날짜가 지날 때까지 해당 월에 계산되어야 합니다. 다음은 제가 제작하고자 하는 이미지의 예입니다.

JSL을 사용하여 이러한 수를 자체 데이터 테이블로 가져오는 방법이 있습니까?
내가 달성하려는 작업에 대한 추가 정보를 제공할 수 있는지 알려주세요.
감사해요