こんにちは、みんな、
データベース内の複数の列に対して数式を構築したいと考えています。 理解するのは簡単ではありません。例を挙げて目標を説明します。

STEP1:2100番に相当
灰色の部分:
ここでは、4 つの異なるオブジェクト タイプ (ENT1、...、ENT4) を示します。 各オブジェクトは進行状況番号 (列 T) に関連付けられており、これらの番号は明確に定義された操作にリンクされています。
黄色の部分:
これらのセルは、各オブジェクトにどの「数値」が適用されるかを示し、この数値を操作に関連付けます。 セルが空の場合、オブジェクトはこの操作を受けないことを意味します。
目的は次のとおりです。
- オブジェクトに進歩があることがわかっているので、ステップ 1 までの期間を合計します (例: オブジェクト ENT2 は番号 1749 にあるため、1500 年に以前に何をしたかは興味がありません)。そのため、ステップ 1 までの期間はステップ 1749 の継続時間なので、継続時間 = 45
私はこのコードから始めました:
Names Default To Here( 1 );
dt = Current Data Table();
dur_cols = Filter Each({col_name}, dt << Get Column Names("String", Continuous),
Starts With(col_name, "durée"));
// for indexing later
num_colnr = Transform Each({col_name}, dur_cols,Word(-1, col_name));
dt << New Column("DUREE ETAPE1", Numeric, Continuous, Format(":jou:hh:m",8), << Set Each Value(
If( :"T"n < 2100 ,
colidx = Loc(dt[Row(), num_colnr] > :"opé"n & (num_colnr < 2100 ) );
If(N Items(colidx) > 0,
val = Sum(dt[Row(), dur_cols[colidx]]);
If(IsMissing(val),
0
,
val
);
,
0
)
,
0
)
));
ご協力いただきありがとうございます、
心より