列の日付による行の値の遅延 (遅延)<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />親愛なるみんな、
簡単な計算をしたいのですが、できません。
添付の jmp テーブルは、Hotel Occupancy Database のサブセットです。
レコード ID 27421 の単純なロジックは次のとおりです。
2016 年 4 月 14 日に 250 部屋が到着し、チェックインします。
2016 年 4 月 14-15-16 日に、これらの 250 室の客室はホテルに 3 日間滞在します。
2015 年 4 月 17 日、2016 年 4 月 14 日に到着した 250 部屋 チェックアウト (ホテルを出発)。
RoomLeave 列を計算する必要があります (目的のために手動で入力しました)。
レコード ID は一意ですが、同じ日付に別のレコード ID でさらに多くの到着/滞在/休暇が発生します。
ご支援いただきありがとうございます。

Re: 列の日付によって行の値を遅らせる (ラグする)はい、私は正確な正しい式を提供しませんでした。あなたは近づいた。トリッキーなのが「日」の曲です。 ジムは、彼が書いたスクリプトで同じ式を使用しましたが、「Day」の前後に引用符が必要な点で正しいだけです。多くの JMP 数式では、オプションが扱いにくい場合があります (通常、それらは一度見れば意味があります)。
Re: 列の日付によって行の値を遅らせる (ラグする)ありがとうジム・ネルソン! それは機能し、はい、データは昇順です。
どうもありがとう、私は私のレポートを引っ張ることができます。

PS: 残念ながら、 '日'から来なければならない滞在日のために到着部屋とルームナイトしかし、適合しませんルームカウント+1 日の遅延が必要です (ゲストは滞在して同日にチェックアウトすることはできません)。 ACC。私の論理では、上記のような 1 つの表形式のレポートで解決することは不可能です...
Re: 列の日付によって行の値を遅らせる (ラグする)親愛なるkaren@boulderstats入力していただきありがとうございます。 私が間違っていたか、式自体がエラーを出しているかのどちらかです。

Re: 列の日付によって行の値を遅らせる (ラグする)各 RecordID のデータは常にグループ化され、StayDate に基づいて昇順になっていますか?
もしそうなら、ここにうまくいく式があります:
If( :RecordId != Lag( :RecordId ) | Row() == 1,
ar = :到着部屋
);
If( Date Difference( :StayDate, :CheckOutDate, "Day" ) == 1,
ar、
0
);
Re: 列の日付によって行の値を遅らせる (ラグする)親愛なるジム・ネルソンへ
入力していただきありがとうございますが、数式列で解決する必要があります。データベースは巨大で、毎分更新されます。
Re: 列の日付によって行の値を遅らせる (ラグする)これは、必要なデータ テーブルの更新を実行する簡単なスクリプトです。
名前のデフォルトはここ( 1 );
dt=現在のデータ テーブル();
// RoomLeave 列を作成して初期化します
もしも(試す(dt:退室<<名前を取得、 "" )!= "" , dt<<列を削除する( 「ルームリーブ」 ));
待って( .2 );
dt<<新しい列( 「ルームリーブ」 、各値を設定します( 0 ));
// 各 RecordID の最終滞在日と到着部屋を検索します
dtsumm = dt <<要約(見えない、
グループ( :RecordId ),
マックス( :滞在日 ),
マックス( :アライバルルーム ),
頻度( "なし" )、
重さ( "なし" )、
統計列名の形式( "桁" )
);
// ArrivalRoom を RoomLeave に変更します
dtsumm:到着部屋 <<セット名( 「ルームリーブ」 );
// データ テーブルをクリーンアップして、必要な列のみを保持します
ツムム <<列を削除する( 「N行」 );
// 元のデータ テーブルを Leaving データで更新します
// RecordID と最終滞在日の照合
dt <<アップデート(
(dtsumm) で、
一致する列 ( :RecordId = :RecordId, :StayDate = :StayDate )
);
// 集計データ テーブルを削除します
近い( dtsumm、nosave );
Re: 列の日付によって行の値を遅らせる (ラグする)日差機能は使えますか?
Date Difference(CheckOutDate, CheckInDate, Day) = 1 の場合、部屋の休暇 = 部屋の夜、それ以外の場合は 0 です。