![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 218 Pomógł: 0 Dołączył: 14.04.2004 Skąd: Słupsk, Nowy Sącz Ostrzeżenie: (0%) ![]() ![]() |
Chodzi o to, że z bazy chcę pobrać dane do wykresu... w bazie są dane posegregowane po czasie (unix_timestamp), ale nie są regularne... tzn czasem są co minutę, czasem co godzinę, a czasem nie ma przez miesiąc...
kiedy chcę pobrać sobie dane na dowolny moment, to po prostu daję to: "SELECT `wartosc` FROM `dane` WHERE `czas`<=$czas ORDER BY `czas` DESC;" i w ten sposób dostaję ostatnią znaną wartość na podany czas... problem się robi wtedy, kiedy chce zrobić z tego wykres... i np. 100 takich danych dla różnych czasów chcę uzyskać... jak to zrobić w jednym zapytaniu, a nie w 100? Przyszło mi do głowy, by stworzyć podzapytanie dzielące $czas przez interwal jaki potrzebuję, wtedy po zaokrągleniu kolejne czasy będą kolejnymi intami... i wtedy zrobić WHERE BETWEEN, ale nie wiem czy to dobry trop i to się tak robi, czy może należy spróbować czegoś bardziej sensownego... Przy czym nadal nie wiem jak uzyskać "komplet" danych... że jak nie ma danej dla danego czasu, to ma zwrócić ostatni poprzedni... pozdrawiam, Phoenix Ten post edytował phoenix84 3.09.2016, 14:09:11 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 6 807 Pomógł: 1828 Dołączył: 11.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
Który to ostatni poprzedni?
Przykład: 05:00 A 05:00 B 05:00 C 05:00 D 07:00 E 15:00 F 15:00 G Który rekord mam wybrać dla 05:00, a który dla 10:00? Zakładamy interwał 5 minut. Ten post edytował trueblue 3.09.2016, 14:54:21 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 6.10.2025 - 03:23 |