我对整体SQL有点新,并且设法绊倒了这条路,但现在我有点卡住了。SQL如何从加入结果中选择最大日期
我有两个表格,一个是“船舶”到“油类型”的索引,就是Id。另一张表“ROB”是船上剩余的油量。
每个月我都可能会或可能不会在ROB表中获得新记录。
我需要的是每个不同的油类型为cetain船和最新的ROB如果有的话。
下面的查询几乎是我想要的东西,除了我获得所有ROB的每种油类型,我只想要最新的。
PARAMETERS QueryShipID Short;
SELECT Oils.OilID, Oils.ShipID, ROB.LastROB, ROB.Received, ROB.DateReceived, ROB.PortReceived, ROB.TotalUsed, ROB.CurrentROB, ROB.DateSent
FROM
(SELECT DISTINCT OilID, ShipID
FROM [Index]
WHERE (((ShipID)=[QueryShipID])))
AS Oils
LEFT JOIN
(SELECT ShipID, OilId, LastROB, Received, DateReceived, PortReceived, TotalUsed, CurrentROB, DateSent
FROM [Oil ROB])
AS ROB
ON (Oils.ShipID = ROB.ShipID) AND (Oils.OilID = ROB.OilID);
我需要做的是获取每种油类型的最后一个DateSent。
我发现了一些关于使用Max函数的教程,它似乎建议将汇总查询的结果加回到原始表中。然而,我似乎无法得到这个工作,这使得一个巨大而杂乱的查询。
如果有人对最佳做法有一些建议,我会非常感激。
理想情况下,这样做后,我想添加一个日期参数,以便您可以在某个日期之前获得最后一个ROB。这应该是相对容易的,但我将其列入以防对答案有任何影响。
谢谢你。
戴夫
石油类型生活在哪个表? –
技术上这个类型存在于OilID与Index和ROB表相关的另一个表中。但是这并不重要......我可以稍后再说。 –