sql - How to get the last record from Ms Access table -
i have 2 tables named reefers , alerts. want join these 2 tables.
now, how result shows last record of each reeferno alerts table alerttype equal "temperatures"?
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 5/2/15 9:58 arrival e-110 5.2 warehouse 5/2/15 9:48 5/2/15 9:53 departure e-111 5.4 warehouse 5/2/15 9:40 5/2/15 9:45 temperatures a-001 11.37 warehouse 5/2/15 9:38 5/2/15 9:43 temperatures a-001 10.06 store 5/2/15 9:35 5/2/15 9:40 temperatures a-001 10.02 store 5/2/15 9:19 5/2/15 9:24 departure a-001 10.02 store 5/2/15 9:12 5/2/15 9:17 temperatures a-002 10.37 warehouse 5/2/15 9:06 5/2/15 9:11 temperatures a-002 12.62 warehouse 5/2/15 9:04 5/2/15 9:09 arrival a-002 12.62 warehouse
result must be:
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 5/2/15 9:45 temperatures 11.37 warehouse a-002 a-trucking 5/2/15 9:12 5/2/15 9:17 temperatures 10.37 warehouse
i'm using below code it's not giving me result want.
select reefers.reeferno, reefers.transporter, alerts.alerttype, alerts.alertdatetime, alerts.temperature, alerts.location, alerts.receiveddatetime reefers inner join (alerts inner join (select alerts.reeferno, max(alerts.receiveddatetime) maxreceiveddatetime alerts group alerts.reeferno) temptable on (alerts.reeferno = temptable.reeferno) , (alerts.receiveddatetime = temptable.maxreceiveddatetime)) on reefers.reeferno = alerts.reeferno (((alerts.alerttype)="temperatures"));
update:
i changed required result. instead of word null, leave blank reefers without temperatures alerttype.
start query pulls want reefers had @ least 1 temperature alert:
select sub1.reeferno, a2.alertdatetime, a2.receiveddatetime, a2.alerttype, a2.temperature, a2.location ( select a1.reeferno, max(a1.alertdatetime) maxofalertdatetime alerts a1 a1.alerttype='temperatures' group a1.reeferno ) sub1 inner join alerts a2 on (sub1.maxofalertdatetime = a2.alertdatetime) , (sub1.reeferno = a2.reeferno);
then left join
reefers table subquery based on first query ...
select r.reeferno, r.transporter, sub2.alertdatetime, sub2.receiveddatetime, sub2.alerttype, sub2.temperature, sub2.location reefers r left join ( select sub1.reeferno, a2.alertdatetime, a2.receiveddatetime, a2.alerttype, a2.temperature, a2.location ( select a1.reeferno, max(a1.alertdatetime) maxofalertdatetime alerts a1 a1.alerttype='temperatures' group a1.reeferno ) sub1 inner join alerts a2 on (sub1.maxofalertdatetime = a2.alertdatetime) , (sub1.reeferno = a2.reeferno) ) sub2 on r.reeferno = sub2.reeferno;
Comments
Post a Comment