如何使用 SQL 在 FileMaker 中查找最近的日期

问题描述

在 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 语句