Betreff: Anzahl der in Bearbeitung befindlichen Elemente anhand von DatumsangabenIch würde das vielleicht als SQL-Abfrage schreiben, aber es geht auch in JSL. Unten ist eine mögliche Option (es gibt viele einfachere und kompliziertere)
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)),
);

Anzahl der in Bearbeitung befindlichen Elemente anhand von DatumsangabenHallo, ich habe diesen Beispieldatensatz erstellt, um das Problem zu zeigen, an dem ich arbeite:
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" )))
);Der folgende Code erstellt eine 5x3-Datentabelle mit Anfangs- und Enddaten für 5 verschiedene Projekte. Ich möchte die Anzahl der „laufenden Projekte“ für alle Monats-/Jahreskombinationen im Datensatz ermitteln. Damit meine ich, dass jedes Projekt, dessen Anfangsdatum vorliegt, für diesen Monat gezählt werden sollte, bis das Enddatum überschritten ist. Hier ist ein Bildbeispiel dessen, was ich produzieren möchte:

Gibt es eine Möglichkeit, diese Zählungen mithilfe von JSL in eine eigene Datentabelle zu übertragen?
Bitte lassen Sie mich wissen, ob ich weitere Informationen darüber geben kann, was ich erreichen möchte.
Danke
Erweiterte statistische ModellierungAutomatisierung und SkripterstellungInhaltsorganisationDatenzugriffMassenanpassungQualitäts- und Verfahrenstechnik