Zadanie na studia- problem z wyświetlaniem pracowników SQL

Zadanie na studia- problem z wyświetlaniem pracowników SQL
Dominik Żydak
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 4
0

Szanowni użytkownicy forum,
Proszę o pomoc w rozwiązaniu zadania którego treść brzmi następująco: Podaj nazwiska pracowników, którzy obsłużyli co najmniej 4 zamówienia. Wynik jaki powinno zwrócić polecenie dołączam w załączniku wraz z graficznym przedstawieniem bazy danych. Dotychczas udało mi się napisać następującą część kodu:
SELECT E.first_name || ' ' || E.last_name AS "IMIĘ I NAZWISKO" FROM emp E, ord O WHERE O.sales_rep_id= E.id ;
Nie wiem do której tabeli powinienem się odwołać aby ograniczyć ilość przyjętych zamówień przez pracownika, w tabeli ORD pod pozycją order_filled są tylko wartości tekstowe w postaci Y bądź N które odpowiednio znaczą o przyjęciu bądź odrzuceniu zamówienia.
Jeszcze raz serdecznie proszę o pomoc.

stivens
  • Rejestracja: dni
  • Ostatnio: dni
2

Pytanio-podpowiedz: znasz GROUP BY, inner joiny i funkcje agregujace?

Dominik Żydak
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 4
0

W ostateczności udało mi się napisać następujące polecenie:
SELECT E.first_name || ' ' || E.last_name AS "IMIĘ I NAZWISKO" FROM emp E INNER JOIN ord O ON E.id= O.sales_rep_id ORDER BY O.order_filled;
Niestety dalej nie mam pomysłu co zrobić żeby byli brani pod uwagę tylko pracownicy którzy obsłużyli co najmniej 4 zamówienia.

stivens
  • Rejestracja: dni
  • Ostatnio: dni
2

Dlaczego zapytalem o group by i funkcje agregujace? Nie widze ich nigdzie w Twoich query a sa "niezbedne"

stivens
  • Rejestracja: dni
  • Ostatnio: dni
1

SELECT E.first_name || ' ' || E.last_name AS "IMIĘ I NAZWISKO" FROM emp E, ord O WHERE O.sales_rep_id= E.id AND COUNT(O.id)>4 GROUP BY o.sales_rep_id; - Dominik Żydak 11 minut temu

Kopiuj
SELECT E.first_name || ' ' || E.last_name AS "IMIĘ I NAZWISKO", COUNT(O.id) AS "OBSŁUŻONYCH ZAMÓWIEŃ"
FROM emp E, ord O WHERE O.sales_rep_id = E.id
GROUP BY O.sales_rep_id
HAVING "OBSŁUŻONYCH ZAMÓWIEŃ" > 3;

(moze byc jakas literowka albo pomniejszy blad)

stivens
  • Rejestracja: dni
  • Ostatnio: dni
1

a) Po co Ci join w glownym zapytaniu? b) Zamiast = powinno in

Kopiuj
SELECT E.first_name || ' ' || E.last_name AS "IMIĘ I NAZWISKO"
FROM emp E
WHERE E.id in (
    SELECT O.sales_rep_id FROM ord O GROUP BY O.sales_rep_id HAVING COUNT(O.id) > 3
);

c) W trakcie przerabiania zapytania jednak zauwazylem masz wiecej bledow... Jak Ty to robisz? :D

(ponownie moga byc jakies bugi bo nie mam bazy na ktorej moglbym przetestowac)

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.