按列日期延遲(滯後)行值<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />各位,
我想做一個簡單的計算,但我做不到。
附加的 jmp 表是酒店入住率數據庫的一個子集。
記錄 ID 27421 的簡單邏輯是;
2016 年 4 月 14 日 250 間客房抵達併入住,
2016 年 4 月 14-15-16 日,這 250 間客房在酒店住了 3 天,
2015 年 4 月 17 日 2016 年 4 月 14 日抵達的 250 間客房退房(離開酒店)。
我需要計算 RoomLeave 列(我為此手動填寫)..
記錄 ID 是唯一的,但更多的到達/停留/離開發生在具有不同記錄 ID 的相同日期。
非常感謝您的支持。

回复:按列日期延遲(滯後)行值是的,我沒有提供完全正確的公式。你接近了。棘手的是“日”部分。 吉姆在他寫的劇本中使用了相同的公式,只是他說對了,因為你需要在“日”周圍加上引號。對於許多 JMP 公式,選項可能很棘手(一旦您看到它們,它們通常就有意義了)所以我發現我經常需要用戶手冊來確保所有部分正確無誤。
回复:按列日期延遲(滯後)行值謝謝吉姆尼爾森! 它有效,是的,數據是按升序排列的。
再次非常感謝,我可以提取我的報告。

附言: 不幸的是'天'必須來自留戀為了到達室和房間之夜但不適合房客這需要 +1 天的延遲(客人不能在同一天入住和退房)。 累積按照我的邏輯,不可能像上面那樣在一份表格報告中解決它......
回复:按列日期延遲(滯後)行值親愛的凱倫@boulderstats謝謝你的反饋。 要么我做錯了,要么公式本身就出錯了。

回复:按列日期延遲(滯後)行值每個 RecordID 的數據是否總是組合在一起並根據 StayDate 按升序排列?
如果是,這裡有一個有效的公式:
如果( :RecordId != 滯後( :RecordId ) | Row() == 1,
ar = :到達房間
);
如果(日期差異(:StayDate,:CheckOutDate,“天”)== 1,
啊,
0
);
回复:按列日期延遲(滯後)行值親愛的吉姆尼爾森,
感謝您的輸入,它完成了工作,但我需要用一個公式列來解決它,數據庫很大並且每分鐘都會自我更新。
回复:按列日期延遲(滯後)行值這是一個快速腳本,可以執行您想要的數據表更新。
名字默認在這裡( 1個);
dt=當前數據表();
// 創建 RoomLeave 列並初始化它
如果(嘗試(dt:房間離開<<取名, “” )!= “” , 時間<<刪除列( 《請假》 ));
等待( .2 );
時間<<新建專欄( 《請假》 ,設置每個值( 0 ));
// 找到每個 RecordID 的最後停留日期和到達房間
dtsumm = dt <<摘要(不可見,
組(:RecordId),
最大限度(:住宿日期),
最大限度(:到達房間),
頻率( “沒有任何” ),
重量( “沒有任何” ),
統計列名格式( “柱子” )
);
// 將 ArrivalRoom 更改為 RoomLeave
dtsumm:到達房間<<設置名稱( 《請假》 );
// 清理數據表只保留需要的列
dtsumm <<刪除列( “N行” );
//用Leaving數據更新原始數據表
// 匹配 RecordID 和最後的停留日期
dt <<更新(
隨著(dtsumm),
匹配列(:RecordId =:RecordId,:StayDate =:StayDate)
);
// 刪除匯總數據表
關閉( dtsumm, nosave );
回复:按列日期延遲(滯後)行值日期差異功能對您有用嗎?
如果 Date Difference(CheckOutDate, CheckInDate, Day) = 1,則房間離開 = 房間夜數,否則為 0。