问题描述
在 2 个表之间找到最接近的日期匹配的明确方法 嗨,我有一个学校项目,我必须将数学导出的天数添加到高低日期,然后评估导出的转折点到我的历史结果。我在 FileMaker 19 中有三个表:
带有字段 TurnDate 的 HighLowData
有 20 个公式的数学
TurningPoints,它是通过脚本循环数学公式与 HighLowDate::TurnDate 创建的。
因此,每个 HighLowDate::TurnDate 会产生 20 个 TurningPoints::cTPdate 条目。
我在 TurningPoints cLookup 中有一个字段,我希望在其中计算 HighLowData 中与我的 cTPdate 最接近的 TurnDate。
我尝试过 Executesql ( "SELECT TurnDate FROM HighLowData JOIN TurningPoints ORDER BY ABS (HighLowDate::TurnDate - TurningPoints::cTPdate) FETCH FirsT 1 ROW ONLY"; "";"")
我承认 sql 超出了我的舒适区。有没有其他方法可以完成任务,或者可以整理我的 sql 以使其正常工作?我了解 DATEDIFF 不适用于 FileMaker。
我尝试了 LookupNext,但它只返回了所选行的实际 TurnDate。 提前致谢
解决方法
SQL 没问题。我会使用不同的方法。
开始
ExecuteSQL
("SELECT cTPdate
FROM TurningPoints
WHERE cTPdate >=?
ORDER BY cTPdate DESC
FETCH FIRST 1 ROW ONLY
";
"";"";HighLowDate::TurnDate)
这将为您提供未来日期最接近的匹配
反向查询,您将获得过去最接近的匹配
然后您可以比较这两天和您的日期之间的差异并获得最接近的匹配。
如果你需要一个计算器,你可以使用 Let 语句