Ich benutze SQL Server 2012. Ich habe eine Tabelle (LocationResults) mit mehreren Spalten. Ich möchte alle Spalten erhalten, die auch in einer anderen Tabelle vorhanden sind (TargetAssociationDetails) - aber nur die Zeilen, die zuletzt eingefügt wurden und auch in der zweiten Tabelle vorhanden sind.Wie bekomme ich den neuesten Datensatz basierend auf Timestamp in SQL Server mit Join
Meine TargetAssociationDetails Tabelle:
MSISDN IMEI IMSI
--------------------------
14085551107 NULL NULL
14085551108 NULL NULL
14085551113 NULL NULL
Meine LocationResults Tabelle:
Latitude Longitude MSISDN IMSI IMEI RecordedTimeStamp
---------------------------------------------------------------------------
57.785125 -123.40476 14085551107 NULL NULL 05:54.8
57.78374111 -123.4027269 14085551107 NULL NULL 19:12.6
57.78476194 -123.4045131 14085551107 NULL NULL 09:08.3
57.61768861 -123.4081439 14085551108 NULL NULL 19:08.4
57.801585 -123.45619 14085551114 NULL NULL 19:08.5
57.55303194 -123.3019161 14085551113 NULL NULL 19:08.5
Diese meine Frage ist -
SELECT MAX(lr.RecordTimestamp) AS RecordedTimeStamp, lr.IMEI, lr.IMSI, lr.MSISDN
FROM LocationResults lr LEFT OUTER JOIN TargetAssosiationDetails tad ON
tad.IMEI = lr.IMEI AND tad.IMSI = lr.IMSI AND tad.MSISDN = lr.MSISDN
GROUP BY lr.IMEI, lr.IMSI,lr.MSISDN
Aber in diesem Fall, ich bin zu bekommen nicht in der Lage alle Spalten. Ich kann nur die Spalten abrufen, nach denen ich gruppiere.
Das Ergebnis was ich will -
Latitude Longitude MSISDN IMSI IMEI RecordedTimeStamp
---------------------------------------------------------------------------
57.78374111 -123.4027269 14085551107 NULL NULL 19:12.6
57.61768861 -123.4081439 14085551108 NULL NULL 19:08.4
57.55303194 -123.3019161 14085551113 NULL NULL 19:08.5
Ich bin absolut neu anfragende DB so wird es groß sein, wenn Sie ein Skript zusammen mit einer Erklärung von veröffentlichen können, was es tut.
Vielen Dank im Voraus.
Sie möchten den letzten Zeitstempel in Bezug auf welche anderen Spalten? –
es ist immer Goo, die Version Ihres SQL-Servers zu markieren – FLICKER