Wyświetlenie z bazy numerów ekip budowlanych, spełniających określone warunki

0

Korzystam z Oracle'a.

Treść zadania brzmi:

wyświetlić numery ekip budowlanych, które spełniają warunki:
-ilość pracowników ekipy budowlanej większa od sumy wykonanych zleceń

  • średni wiek pracowników większy niż 30 lat

Pracownik (nazwisko(PK) , data urodzenia, nr_ekipy_budowlanej);
Zadanie ( nr_zadania, nazwisko(FK)) Jeśli imie == null, wtedy zadanie nie zostało wykonane przez nikogo

Co do drugiego warunku kwestia jest prosta, bo wystarczy na sam koniec zrobić Where
Co do pierwszego warunku nie mam pojęcia jak to zorganizować.

Dodatkowe wymaganie to: musi być JOIN, ale to załatwione, bo on i tak się przyda, żeby wiedzieć czy pracownik zadanie wykonał.
I musi być co najmniej jedno podzapytanie poza selectem.

Myślałam nad zapytaniem skorelowanym, ale nie potrafię tego rozwiązać.

0

Lekcja na dziś: avg(), sum(), count(), having i group by
W wielkim skrócie to będzie coś w stylu

select pracownik.nr_ekipy_budowlanej from pracownik inner join zadanie on pracownik.nazwisko = zadanie.nazwisko
group by pracownik.nr_ekipy_budowlanej
having avg(pracownik.wiek) > 30 and count(pracownik.nazwisko) > sum(zadanie.koszt)

To tak schematycznie bo wiek pracownika trzeba policzyć oczywiście no i nie wiem skąd wziąć "sumę wykonanych zleceń" bo nie wiem co sumować ;]

0

Właśnie tutaj mam największy problem.

Trzeba wybrać ekipy budowlane, które mają więcej wykonanych zleceń przez swoich pracowników niż posiadają pracowników.

w tabeli zadanie jest numer zadania i kto je wykonał (pracownik jakiejś grupy budowlanej)

0

No i gdzie jest problem? W tym havingu musisz mieć 3 podzapytania które będą robiły select distinct na pracownikach / zadaniach i których wyniki będą miały avg, count i count

1 użytkowników online, w tym zalogowanych: 0, gości: 1