データベースからのデータがあり、データが取得されたときに当月の番号に列を割り当て、前の月に個別の列を作成してカウントバックします。 したがって、9月からの24か月のデータプルの場合、すべての行に値「9」を持つ列「Current Month」があり、その後、添え字ヘッダー「_01」、「_ 02」、...を持つ24列になります。 「_24」は「2021年8月」、「2021年7月」、...「2019年9月」を意味します。
手動の数式を使用して毎月入力しましたが、「現在の月」の値を使用してこれを自動化したいと思います。 今月の値に基づいて年が変化するため、月と年の両方でこれを行う方法がわかりません。
どんな助けでも大歓迎です!
これは、9月の現在の月の値に基づいて手動で生成されたDateKey列を持つ24か月の行の例のデータテーブルスクリプトです。
dt=New Table( "Set Month with Key Example",
Add Rows( 24 ),
Compress File When Saved( 1 ),
New Column( "Month",
Character,
"Nominal",
Set Values(
{"01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11", "12",
"13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24"}
)
),
New Column( "DateKey",
Character,
Set Values(
{"01082021", "01072021", "01062021", "01052021", "01042021", "01032021", "01022021", "01012021", "01122020", "01112020", "01102020", "01092020", "01082020", "01072020", "01062020", "01052020", "01042020", "01032020", "01022020", "01012020", "01122019", "01112019", "01102019", "01092019"}
)
)
);
<BR />dt:DateKey << Data Type( Numeric, Format( "m/y", 8 ), Input Format( "ddmmyyyy" ) ) <<<BR />Set Modeling Type( "Continuous" ) << Set Field Width( 12 );
CurMonth=9;
モニーク
これは、日付増分を使用した1つの可能な解決策です。 数式として実行されますが、列の名前を変更する場合は、ループ内でかなり簡単に使用できるはずです。
CurMonth = 9;
currentDate = Date DMY(1, curmonth, Year(Today()));
Date Increment(currentDate, "Month", -1 * Num(:Month), "start");
最初のcurMonthは、開始年が現在の年と同じであると想定してcurrentDateを生成するために使用され、次にその日付がDateIncrement関数で使用されます。
