0
我有两个表名为Reefers和Alerts。我想加入这两个表格。如何获得Ms Access表的最后一条记录
现在,如何得到的结果显示每个ReeferNo从警报表,其中的AlertType等于“温度”的最后一个记录?
TABLE 1: Reefers
ReeferNo Transporter
E-110 Express1
E-111 Express1
E-112 Express1
A-001 A-Trucking
A-002 A-Trucking
TABLE 2: Alerts
AlertDateTime ReceivedDateTime AlertType ReeferNo Temperature Location
5/2/15 9:53 AM 5/2/15 9:58 AM Arrival E-110 5.2 Warehouse
5/2/15 9:48 AM 5/2/15 9:53 AM Departure E-111 5.4 Warehouse
5/2/15 9:40 AM 5/2/15 9:45 AM Temperatures A-001 11.37 Warehouse
5/2/15 9:38 AM 5/2/15 9:43 AM Temperatures A-001 10.06 Store
5/2/15 9:35 AM 5/2/15 9:40 AM Temperatures A-001 10.02 Store
5/2/15 9:19 AM 5/2/15 9:24 AM Departure A-001 10.02 Store
5/2/15 9:12 AM 5/2/15 9:17 AM Temperatures A-002 10.37 Warehouse
5/2/15 9:06 AM 5/2/15 9:11 AM Temperatures A-002 12.62 Warehouse
5/2/15 9:04 AM 5/2/15 9:09 AM Arrival A-002 12.62 Warehouse
结果必然是:
ReeferNo Transporter AlertDateTime ReceivedDateTime AlertType Temperature Location
E-110 Express1
E-111 Express1
E-112 Express1
A-001 A-Trucking 5/2/15 9:40 AM 5/2/15 9:45 AM Temperatures 11.37 Warehouse
A-002 A-Trucking 5/2/15 9:12 AM 5/2/15 9:17 AM Temperatures 10.37 Warehouse
我使用下面的代码,但它不给我结果是我想要的。
SELECT Reefers.ReeferNo, Reefers.Transporter, Alerts.AlertType,
Alerts.AlertDateTime, Alerts.Temperature, Alerts.Location,
Alerts.ReceivedDateTime
FROM Reefers INNER JOIN (Alerts INNER JOIN (SELECT
Alerts.ReeferNo,
MAX(Alerts.ReceivedDateTime)
AS MaxReceivedDateTime
FROM Alerts
GROUP BY Alerts.ReeferNo) AS temptable ON (Alerts.ReeferNo =
temptable.ReeferNo) AND (Alerts.ReceivedDateTime =
temptable.MaxReceivedDateTime)) ON Reefers.ReeferNo = Alerts.ReeferNo
WHERE (((Alerts.AlertType)="Temperatures"));
UPDATE:
我改变所需的结果。而不是单词Null,请保留空白,以便Reefers不带温度AlertType。
如何缩小“E-110/E-111”的范围?就像,如果有10个不同的记录,但没有一个具有“温度”......有10个空记录吗? –
E-110和E-110是冷藏箱编号(ID)。这两个冷藏车没有温度警报,这就是为什么它显示的结果为空或让我们说空白。 –