Preciso de ajuda.
Design de banco de dados:
Tabela de dispositivos
Eu ia | Firmware |
---|---|
1 | 1.1 |
2 | 1.2 |
3 | 1.1 |
4 | 1.1 |
5 | 1.2 |
Tabela de dispositivos comissionados
ID do dispositivo | PessoaId |
---|---|
1 | 2 |
2 | 4 |
3 | 1 |
Tabela de localização GPS
ID do dispositivo | Longitude | Latitude | Data de Gravação |
---|---|---|---|
1 | 2 | 3 | 2025-08-01 |
2 | 4 | 1 | 2025-08-01 |
3 | 1 | 3 | 2025-08-01 |
1 | 2 | 4 | 2025-08-01 |
2 | 4 | 2 | 2025-08-01 |
3 | 1 | 6 | 2025-08-01 |
1 | 2 | 6 | 2025-08-01 |
2 | 4 | 8 | 2025-08-01 |
3 | 1 | 9 | 2025-08-01 |
O resultado final que desejo é o seguinte:
ID do dispositivo | Longitude | Latitude | Data de Gravação |
---|---|---|---|
1 | 2 | 3 | 2025-08-01 |
2 | 4 | 1 | 2025-08-01 |
3 | 1 | 3 | 2025-08-01 |
Então a ideia é que pode haver várias entradas do Device na tabela, mas eu preciso selecionar apenas aquela que tem o RecordedDate mais alto. E os dispositivos devem ser apenas aqueles disponíveis na tabela CommissionedDevice.
O que eu tentei?
Tentei várias abordagens, como distinct, cte, group by, mas até agora não consegui alcançar os resultados desejados.
Por favor, me informe qual abordagem devo adotar. Li que existe algo como classificação que também pode ajudar.
Obrigado.
Você pode usar Row_Number para numerar as linhas para cada ID de dispositivo. Em seguida, use uma expressão de tabela comum (CTE) para mostrar apenas as linhas com rn=1.
violino
brincar com o tempo adicionado