![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 44 Pomógł: 0 Dołączył: 12.03.2010 Ostrzeżenie: (0%) ![]() ![]() |
Mam taki problem:
Dwie tabele w bazie danych... tabela pierwsza "ta": Ld--NrKlienta--Mieiac--Rok---Wartosc-- -9----22--------5-----2009----18------ -8----15--------5-----2009----15------ -7----21--------5-----2009----11------ -6----22--------5-----2009-----9------ -5----44--------5-----2009-----9------ -4----44--------5-----2009----57------ -3----22--------5-----2009----19------ tabela druga "tb": -Ld--NrKlienta--Data----------email-- -33-----15-----2009-05-22---aaa9999@o2.pl -33-----22-----2009-05-18---aaa8888@o2.pl -33-----21-----2009-05-17---aaa7777@o2.pl -33-----22-----2009-05-11---aaa6666@o2.pl -33-----44-----2009-05-05---aaa5555@o2.pl -33-----22-----2009-05-01---aaa4444@o2.pl -33-----15-----2009-04-27---aaa3333@o2.pl -33-----22-----2009-04-22---aaa2222@o2.pl -33-----22-----2009-04-15---aaa1111@o2.pl Chciałbym otrzymać TYLKO jeden, NAJŚWIEŻSZY email dla danego klienta czyli wynik z powyższych tabel powinien wyglądać tak Rezultat: Klient email 15 -- aaa9999@o2.pl 22 -- aaa8888@o2.pl 21 -- aaa7777@o2.pl 44 -- aaa5555@o2.pl Próbowałem różnych zapytań ale zawsze dostaję za dużo odpowiedzi czyli albo namnożą mi się Klienci albo wyciąga więcej emaili. Klienci często zmieniają swe eMaile a ważny jest tylko jeden - ten z najświeższą datą...
Jeżeli ktoś podpowie mi prosty SELECT to będzie super... |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 44 Pomógł: 0 Dołączył: 12.03.2010 Ostrzeżenie: (0%) ![]() ![]() |
Nie mogę sobie z tym poradzić. Niestety chyba zbyt komplikuję zapytanie z JOIN bo ciągle mam błędy... lub zbyt dużo wyników.
Dokończyłem zapytanie to od którego zacząłem czyli:
i działa idealnie ALE wybiera mi najstarsze eMaile zamiast najmlodszych... 15 -- aaa9999@o2.pl 22 -- aaa1111@o2.pl <----- a powinno być aaa8888@o2.pl 21 -- aaa7777@o2.pl 44 -- aaa5555@o2.pl pozostałe eMaile byly wpisane tylko raz więc będą zawsze wybrane dobrze. Chyba faktycznie nie jest to bardzo trudne ale tak się zablokowalem w tym zestawieniu że nie potrafię obiektywnie na to popatrzeć... Proszę o pomoc. trochę źle zacytowałem moje szukanie. "Prawie poprawnie" jest [źle zacytowalem: GROUP BY (tb.NrKlienta)]:
i działa idealnie ALE wybiera mi najstarsze eMaile zamiast najmlodszych... 15 -- aaa9999@o2.pl 22 -- aaa1111@o2.pl <----- a powinno być aaa8888@o2.pl 21 -- aaa7777@o2.pl 44 -- aaa5555@o2.pl pozostałe eMaile byly wpisane tylko raz więc będą zawsze wybrane dobrze. Polecenie wykonane wg rady Pilsner'a coś mi źle działa (nie wiem co to jest: USING). Jeżeli TO jest proste to niech Ktoś mądry napisze mi jak to skonstruować... Może z tym JOIN(em) ale z tym sobie nie radzę. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 6.10.2025 - 00:20 |