【发布时间】:2021-03-09 03:04:34
【问题描述】:
我有 4 张桌子
-
项目表
projectid: INT (pk) modifiedDate: DateTime2 ... -
ProjectFinalizeTable
id: INT (pk) projectid: INT (fk) modifiedDate: DateTime2 ... -
项目附加时间表
id: INT (pk) projectid: INT (fk) modifiedDate: DateTime2 ... -
项目完成表
id: INT (pk) projectid: INT (fk) modifiedDate: DateTime2 ...
任何表都会根据用户的操作进行修改。所有表的 projectId 都是 ProjectTable 中的 foreignKey。
我想从任何表中获取最新的modifiedDate。例如:ProjectFinalizeTable 可以有最新的modifiedDate,这样查询就会返回那个日期。
为了让你知道我想要什么,就像下面的查询(注意:下面的查询只是为了让你知道我到底在寻找什么)
Select MAX(pt.modifiedDate, pat.modifiedDate, pft.modifiedDate, pct.modifiedDate) as latestModifiedDate
from ProjectTable pt
join ProjectFinalizeTable pft pt.projectid = pft.projectid
join ProjectAdditionalTimeTable pat pt.projectid = pat.projectid
join ProjectCompleteTable pct pt.projectid = pct.projectid
我已经通过many links,但找不到从多个表中计算MAX(Date) 的方法。
【问题讨论】:
-
请向我们展示 1) 示例数据(格式化文本)2) 预期结果(格式化文本)3) 您目前的尝试...
-
@DaleK,我认为这里我们不需要样本数据,表格结构非常清晰。我想不出任何解决方案,所以我没有尝试任何查询。无法理解如何通过比较多个表来计算 MAX(Date)。 我只想知道如何从多个表中计算 MAX(Date)。
-
它对你来说当然是显而易见的,它是你的系统,但对我来说并不明显(可能对其他人也不明显)......你的问题越清晰,你提供的细节越多,速度越快你会得到答案。您必须能够产生一些查询,而不是获得您想要的数据的查询。如果您将示例数据添加为 DDL/DML(即填充的临时表),它甚至可以很容易地为您提供帮助,因为我们不必输入测试数据。当需要使用特定数据而不是理论问题时,SQL 问题更容易回答。
标签: sql sql-server tsql datetime join