Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Odpowiednie wyświetlenie danych
Forum PHP.pl > Forum > Bazy danych > Oracle
llepec
Witam,

Jestem początkujący w temacie baz danych. Nie mogę sobie poradzić z następującym problemem:

Mam dwie tabele:

employees ( employee_id PK, first_name, last_name, department_id FK )
departments ( department_id PK, department_name )

Jak wiadomo, wielu pracowników może mieć przypisanych ten sam department_id.

A ja mam wykonać następującą rzecz:

np.

--------------------------------
Nazwa_działu_01
--------------------------------
imie i nazwisko pracownika
.
.
.
.
--------------------------------
Nazwa_działu_02
--------------------------------
imie i nazwisko pracownika
.
.
.
.
itp.
itp.

Tak jak mówiłem, robię to dopiero od paru dni, jestem zielony w temacie.
Na razie jedyne co potrafię z tym zrobić, to wyświetlić w następujący sposób:

  1. SELECT d.department_name, e.first_name, e.last_name FROM employees e, departments d WHERE e.department_id = d.department_id;


Proszę o pomoc :)

  1. SELECT A FROM (
  2. SELECT '----------------' AS A, department_name, 1 AS B FROM departments
  3. UNION ALL
  4. SELECT department_name, department_name, 2 FROM departments
  5. UNION ALL
  6. SELECT '----------------', department_name, 3 FROM departments
  7. UNION ALL
  8. SELECT e.first_name || ' ' || e.last_name, d.department_name, 4 FROM employees e, departments d WHERE e.department_id = d.department_id
  9. UNION ALL
  10. SELECT '----------------', department_name, 5 FROM departments
  11. ) ORDER BY department_name, B;


Problem solved.
nospor
Zle to rozwiazales

Tu masz rozwiazanie prawidlowe
http://nospor.pl/grupowanie-wynikow.html
llepec
Czemu źle skoro działa dobrze? tongue.gif
nospor
Ponoc na rzesach tez da sie chodzic co nie znaczy, ze jest to wygodne....

Tworzysz tyle zapytan ile jest departamentow, co jest kiepskim rozwiazaniem. Jak ci sie kiedys zmieni liczba departamentow to bedziesz musial zmieniac zapytanie.

Rozwiazanie co ci podalem jest uniwersalne, jest to jedno zapytanie i jest szybsze. Ale Twoja sprawa.
llepec
No chyba nie do końca rozumiesz to zapytania, które napisałem wyżej. Nie Tworzę tyle zapytań ile mam departamentów... Zapytanie to będzie działało dla 100 i 200 departamentów. W mojej bazie jest ich 18, niektóre są puste (bez pracowników) i działa to bez zarzutu. A jeżeli chodzi o kosztowność zapytania, to nie jest duża.
nospor
No coz, zmylilo mnie robienie 5 zapytan z departamentow i numerowanie ich od 1 do 5. I tak, nie rozumiem tego zapytania i nawet nie chce smile.gif
Tak czy siak twoje rozwiazanie jest wolniejsze bo wykonuje kilka SELECTow smile.gif
llepec
Tak czy siak, dzięki za kolejny pomysł smile.gif
Pozdrawiam.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2024 Invision Power Services, Inc.