![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 3 Pomógł: 0 Dołączył: 18.12.2006 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Mam problem z zapytaniem sql - moze ktos z forum mi pomoze. Z gory dzieki za pomoc (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Mam taka tabele z notowania gieldowymi: time | data | czas | name | wartosc 1165937702 | 2006-12-12 | 16:35:01 | TECHWIG | 1244.79 1165937701 | 2006-12-12 | 16:35:00 | MIDWIG | 3858.31 1165937701 | 2006-12-12 | 16:35:00 | TECHWIG | 1244.79 1165937670 | 2006-12-12 | 16:34:30 | TECHWIG | 1244.79 1165937642 | 2006-12-12 | 16:34:01 | WIG | 51747.14 1165937641 | 2006-12-12 | 16:34:00 | MIDWIG | 3858.31 1165937641 | 2006-12-12 | 16:34:00 | TECHWIG | 1244.79 1165937611 | 2006-12-12 | 16:33:30 | TECHWIG | 1244.79 1165937581 | 2006-12-12 | 16:33:01 | WIG | 51747.14 W tabeli sa jeszcze inne notowania name, ale u gory dla przykladu wylistowalem tylko te, o ktore mi chodzi i jak sie one dubluja w czasie. Chcialbym wyswietlic rekordy z name WIG, TECHWIG, MIDWIG, ktore maja najwieksza date, czyli te ktore sa najswiezsze. Te 3 rekordy chcialbym uzyskac oczywiscie w 1 zapytaniu. Stosuje tutaj m.in.
Stosuje tutaj rozne kombinacje zapytania np. z DISTINCT na poczatku zapytania uzywajac funkcji ORDER BY na koncu, ale zawsze dochodzi do sytuacji, ze dubluja mi sie notowania np. dostaje 2 razy TECHWIG i raz MIDWIG, a WIG juz nie dostalem... Probowalem tez uzyc GROUP BY name, ale pokazuje mi rekordy ktore sa najstarsze, a nie najswiezsze - dodanie ORDER BY oczywiscie nic tutaj nie pomaga :| Moze ktos ma pomysl jak szloby takie zapytanie zmienic? Z gory dziekuje za ewentualna pomoc (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) |
|
|
![]()
Post
#2
|
|
Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
widze ze jako tako jestes obcykany w temacie, wiec rzuce ci slowami kluczowymi. czesc sie pokrywa z tymi co masz, ale o paru zapomniales:
group by, having, max(polezdata) (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 3 Pomógł: 0 Dołączył: 18.12.2006 Ostrzeżenie: (0%) ![]() ![]() |
Dzieki za podpowiedz, ale dalej nie umiem znalesc rozwiazania - szczegolnie gdy operuje na tabeli zawierajacej notowania kilkuset spolek i wszystko jest poplatane w czasie to rekordy z unikatowa nazwa sie powtarzaja :|
Nawet uzywajac zapytan zagniezdzony GROUP BY z nalozonym warunkiem HAVING tez nic... Problem w tym ze GROUP BY zawsze wysietla mi najstarsze rekordy z dana nazwa, a jak uzyje maksymalnego dnia w zapytaniu to wyswietli rekordy z najwczesniejsza godzina.., a nie z terazniejsza (IMG:http://forum.php.pl/style_emoticons/default/sad.gif) |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 675 Pomógł: 15 Dołączył: 7.11.2004 Skąd: Katowice Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 3 Pomógł: 0 Dołączył: 18.12.2006 Ostrzeżenie: (0%) ![]() ![]() |
Dziekuje JaRoPHP (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Przerobilem zapytanie na swoje potrzeby i dziala (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) Chodzilo tutaj wlasnie o uzycie max(data), max(czas) przed sekcja FROM, gdy uzywam GROUP BY (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 17.09.2025 - 17:04 |