Estoy intentando escribir una consulta que devuelva las posiciones de GPS más recientes de una tabla de informe GPS para cada dispositivo único. Hay 50 dispositivos en la tabla, por lo que solo quiero 50 filas devueltas.SELECCIONE DISTINCT en una columna, devuelva varias otras columnas (SQL Server)
Esto es lo que tengo hasta ahora (no funciona)
SELECT TOP(SELECT COUNT(DISTINCT device_serial) FROM GPSReport) * FROM GPSReport AS G1
RIGHT JOIN
(SELECT DISTINCT device_serial FROM GPSReport) AS G2
ON G2.device_serial = G1.device_serial
ORDER BY G2.device_serial, G1.datetime DESC
Esto devuelve 50 filas, pero no muestra una fila única para cada device_serial. Devuelve todos los informes para el primer dispositivo, luego todos los informes para el segundo dispositivo, etc.
¿Es lo que intento hacer en una consulta?
Dar las partes relevantes de su esquema de datos podrían ayudar. – Jason
¿tiene alguna identificación única en las filas? – artdanil
Lo sentimos, la tabla tiene las siguientes columnas: device_serial, datetime, triggerID, latitud, longitud, velocidad, dirección. El PK consta de las series device_seal, datetime, triggerID, latitude, longitude. – mwalsher