按列日期延迟(滞后)行值<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。