![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 332 Pomógł: 6 Dołączył: 27.11.2008 Ostrzeżenie: (0%) ![]() ![]() |
Witam mam taką tabelkę
ID data name 1 2012.11.06 a 1 2012.11.03 b 1 2012.11.07 c 1 2012.11.08 d 1 2012.11.05 e 2 2012.11.11 f 2 2012.11.13 g 2 2012.11.08 h 2 2012.11.08 i 2 2012.11.20 j 3 2012.11.11 k 3 2012.11.13 m 3 2012.11.08 n 3 2012.11.08 o 3 2012.11.20 p 3 2012.11.08 r I grupuje ją po id Czyli
I jak zrobić grupowanie żeby kolumny zwracały najnowszą wartość według daty ? Wynik jaki chcę trzymać ID data name 1 2012.11.08 d 2 2012.11.20 j 3 2012.11.13 m Próbowałem coś z
ale nie działa. Ten post edytował arzach 7.11.2012, 13:12:47 |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 933 Pomógł: 460 Dołączył: 2.04.2010 Skąd: Lublin Ostrzeżenie: (0%) ![]() ![]() |
BTW. id powinien być kluczem unikatowym. -------------------- Jeśli pomogłem, kliknij proszę 'pomógł'. Dzięki.
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 332 Pomógł: 6 Dołączył: 27.11.2008 Ostrzeżenie: (0%) ![]() ![]() |
Gdyby o to chodziło to bym nie pisał robiłem tak wcześniej i nie działa
Jedynie MAX(data) jest ok ale reszta wartości nie pasuje Ktoś ma jakiś pomysł ![]() Ten post edytował arzach 7.11.2012, 20:01:22 |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 112 Pomógł: 2 Dołączył: 27.06.2008 Ostrzeżenie: (0%) ![]() ![]() |
napisz czy zadziałało Ten post edytował Vion 7.11.2012, 20:20:39 -------------------- www.zapalara.pl
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 332 Pomógł: 6 Dołączył: 27.11.2008 Ostrzeżenie: (0%) ![]() ![]() |
Nie działa
Chodzi mi o to że chce pogrupować po ID ponieważ chce pobrać po jednym najnowszym rekordzie z danego id i wszystkie te zapytanie co podaliście nie działają. Pobranie za pomocą MAX(data) nic nie daje ponieważ data nieodpowiadana danemu name Czyli Takie zapytanie
zwróci 1 2012.11.08 a 2 2012.11.20 f 3 2012.11.13 k Czyli jak widać name nie odpowiada maksymalnej dacie A ja chce dostać taki wynik 1 2012.11.08 d 2 2012.11.20 j 3 2012.11.13 m Wie ktoś jak to zrobić ? Ten post edytował arzach 7.11.2012, 20:29:18 |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 1 933 Pomógł: 460 Dołączył: 2.04.2010 Skąd: Lublin Ostrzeżenie: (0%) ![]() ![]() |
-------------------- Jeśli pomogłem, kliknij proszę 'pomógł'. Dzięki.
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 332 Pomógł: 6 Dołączył: 27.11.2008 Ostrzeżenie: (0%) ![]() ![]() |
Podzapytanie odpada.
Bo co w przypadku gdy będzie więcej kolumn niż tylko name ? Dla każdej kolumny podzapytanie ? Sposób raczej bardzo mało wydajny Ktoś ma jakieś propozycje jeszcze ? Ta tabelka co podałem to jest tylko przykład by było wiadome o co mi chodzi. |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 1 421 Pomógł: 310 Dołączył: 18.04.2012 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 46 Pomógł: 0 Dołączył: 21.09.2006 Ostrzeżenie: (0%) ![]() ![]() |
A w jaki sposób dokonać takiego grupowania kiedy tworzymy kwerendę?
Wynikiem tego zapytania jest id_pracownika/ godzina/ stanowisko / dzien_tygodnia/ Liczba/ 38/ 1/ 15/ 2/ 1/ 41/ 1/ 11/ 2/ 1/ 38/ 2/ 31/ 2/ 2/ 41/ 1/ 26/ 2/ 2/ 38/ 3/ 26/ 2/ 3/ Idea jest taka aby id_pracownika "zwrócił" dla każdego pracownika z najniższym wynikiem w polu Liczba id_pracownika/ godzina/ stanowisko / dzien_tygodnia/ Liczba/ 38/ 1/ 15/ 2/ 1/ 41/ 1/ 11/ 2/ 1/ Używając group by id_pracownika nie mam pewności czy to rzeczywiście jest najniższa wartość Ten post edytował agamemnon 7.11.2012, 22:09:57 |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 1 421 Pomógł: 310 Dołączył: 18.04.2012 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 65 Pomógł: 1 Dołączył: 19.03.2012 Skąd: Września Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 46 Pomógł: 0 Dołączył: 21.09.2006 Ostrzeżenie: (0%) ![]() ![]() |
mmmmmmm - to zapytanie nie zwraca pojedynczych rekordów id_pracownika.
Użycie zakłamie wyniki bo nie zawsze szukamy pracownika który pracuje najwcześniej. Np. pracownik ma godzinę 6,7,8,9 a potrzebujemy kogoś na 10 to zapytanie zwroci 6. ma za zadanie znaleźć pracowników którzy będą "najbliżej poszukiwanej" godziny (w tym przypadku ósmej) Gdyby dało się wyrzcić pracowników z "Liczba" najbliższym zera to by mnie satysfakcjonowało. Ten post edytował agamemnon 8.11.2012, 13:32:29 |
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 1 421 Pomógł: 310 Dołączył: 18.04.2012 Ostrzeżenie: (0%) ![]() ![]() |
Ja tylko ci pokazałem, jak ma wyglądać zapytanie. Roboty za ciebie odwalać nie będę. Choć i tak już z 3/4 tego zapytania napisałem....
A skoro zwraca duble, to znaczy że albo coś źle napisałem (prawie niemożliwe), albo źle przepisałeś, albo masz duble w bazie... |
|
|
![]() ![]() |
![]() |
Aktualny czas: 19.08.2025 - 09:14 |