![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Mam strukture:
Cytat "SEDU_GUID" "GUID" "NAZWA" "ala" "jakisg1" "Kopia dla guid" "ola" "jakisg2" "sedu adminJST" "ala" "jakg3" "sedu2 adminJST" czyli mam rekordy, ktore na podstawie tej samej SEDU_GUID tworzą grupe rekordów. Tutaj będą to "ala" i "ola". Chcialbym teraz wyciągnąć po jednym rekordzie z kazdej grupy, czyli otrzymac np. tak: Cytat "SEDU_GUID" "GUID" "NAZWA" "ala" "jakisg1" "Kopia dla guid" "ola" "jakisg2" "sedu adminJST" NIe interesuje mnie, ktory rekord z grupy zostanie zwrocony. W mysql by to wyglądalo tak:
Ale oczywiscie w tym "genialnym" oraclu juz takie proste rzeczy nie dzialają, bo nie mozna grupowac po jednej kolumnie gdy w select mamy ich wiecej. Zeby dzialalo to musze do group by dowalic wszystkie kolumny co są w select, ale wowczas wywala mi wszystkie rekordy zamiast po jednym z grupy. Da sie to jakos prosto zalatwic? edit: wymyslilem podzapytanie:
Dzialac dziala, ale jak ktos znajdzie rozwiązanie jakies ladniejsze to chętnie poslucham ![]() edit: i mam:
czyli te kolumny co chce sobie pobrac, to biore w max().... poronione, ale dziala ![]() edit: Dobra, a inaczej: Chce pobrać rekord, który posiada wartość pola STATUS, będącą wartością najmniejszą w danej grupie (grupowanie po SEDU_GUID). Gdyby takich rekordów bylo kilka, chce pobrac tylko jeden. Ten jeden rekord ma byc tym, ktory byl najwczesniej dodany (pole: DATA_DODANIA). ps: rzuccie linkiem do jakiegos porządnego manuala/kursu dla oracle, bo juz nerwicy dostaję przy tej bazie. Jakim cudem jest ona uwazana za lepszą od mysql? (pytanie retorycznie - nie odpowiadac) -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 45 Pomógł: 0 Dołączył: 26.01.2006 Ostrzeżenie: (0%) ![]() ![]() |
Chce pobrać rekord, który posiada wartość pola STATUS, będącą wartością najmniejszą w danej grupie (grupowanie po SEDU_GUID). Gdyby takich rekordów bylo kilka, chce pobrac tylko jeden. Ten jeden rekord ma byc tym, ktory byl najwczesniej dodany (pole: DATA_DODANIA). Klasyka SQLa:
Siłą ORACLE'a jest PL/SQL a tam można zrobić dosłownie wszystko ![]() Ten post edytował KILIUSZKIN 8.12.2006, 10:42:42 -------------------- ________________________________________________________________________________
czy programiści używają jeszcze diagramów ? jeśli nie, to tylko zwykli koderzy są ;) |
|
|
![]()
Post
#3
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
i tak, i nie. Ja prosilem o caly rekord
![]() Rekord posiada jeszcze inne kolumny, ktore chcialby pobrac. Jednak dodanie do selecta dodatwkoych kolumn oczywiscie generuje blad, bo przy grupowaniu nie moze byc kolumn w select, jesli nie bylo ich w group by. Jesli zas dolozyc je do group by, to wszystkie wyniki szlag trafia ![]() -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 45 Pomógł: 0 Dołączył: 26.01.2006 Ostrzeżenie: (0%) ![]() ![]() |
Ten post edytował KILIUSZKIN 8.12.2006, 12:28:19 -------------------- ________________________________________________________________________________
czy programiści używają jeszcze diagramów ? jeśli nie, to tylko zwykli koderzy są ;) |
|
|
![]()
Post
#5
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Dzięki wielkie, działa
![]() ps: musze sie przestawic z myslenia MySql na myslenie Oracle -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 254 Pomógł: 10 Dołączył: 8.11.2006 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Pewnie to już za późno, ale w ORACLE na takie potrzeby wymyślono funkcje rankingujące :
-------------------- --------------------------------------------------------------------------------
weblog.axent.pl -------------------------------------------------------------------------------- |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 31.07.2025 - 10:46 |