![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 13 Pomógł: 0 Dołączył: 22.02.2005 Ostrzeżenie: (0%) ![]() ![]() |
Witam
Jak mam napisać zapytanie?. Mam taką tabelę o nazwie pomiaryPIR. Kod id_pomiar id_CzujnikPir ID_Wartosc Time 1 1 0 15 2 2 1 17 3 1 1 18 Koluma Time jest w formacie timestamp. Tutaj podałęm przykładowe wartości zeby było bardziej przejżyście. chodzi o to żeby wyciągnąć aktualną wartość każdego id_czujnikPIr , Jeżeli występuje on kilkakrotnie to żeby wyciągnąc ten który ma najwieksz znacznik czasu (jest najbardziej aktualny). |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 251 Pomógł: 13 Dołączył: 15.09.2005 Ostrzeżenie: (0%) ![]() ![]() |
witam
moze coś takiego
powinno śmigać -------------------- Everything should be made as simple as possible, but not simpler. - A.Eainstein
|
|
|
![]()
Post
#3
|
|
![]() Grupa: Przyjaciele php.pl Postów: 1 717 Pomógł: 0 Dołączył: 12.06.2002 Skąd: Wolsztyn..... Studia: Zielona Góra Ostrzeżenie: (0%) ![]() ![]() |
@krzyszbi: nie do końca zrozumiałeś problem. To nie jest aż takie proste.
@cwiklok: jeśli dysponujesz MySQL'em w wersji co najmniej 4.1 to sprawa jest całkiem prosta. Załatwia się to podzapytaniem: Kod SELECT id_CzujnikPir, (SELECT ID_wartosc FROM pomiaryPIR t2 WHERE t1.id_czujnikPir = t2.id_czujnikPir ORDER BY time DESC LIMIT 1) FROM pomiaryPIR t1 GROUP BY id_CzujnikPir Jeśli nie masz możliwości użycia podzapytań to pozostaje troche brzydsza droga: Kod SELECT t1.id_CzujnikPir, t1.Id_Wartosc FROM pomiaryPIR t1 LEFT JOIN pomiaryPIR t2 ON (t1.id_czujnikPir = t2.id_czujnikPir AND t1.time < t2.time) WHERE t2.time IS NULL Nie sprawdzałem tego zapytania, bo nie mam teraz jak, więc nie gwarantuje, że zadziała od razu. -------------------- Brak czasu :/
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 20.08.2025 - 10:46 |