Wpis z mikrobloga

#bazydanych #sql #programowanie
Taki problem;f
select distinct firstname, lastname from emp, ord
where exists
(select count(salesrepid) from ord
where
ord.SALESREPID=emp.id
and ?????????????
ord.salesrepid
group by ord.salesrepid)

No i co mireczki wstawić w te #!$%@? znaki zapytania bo na logike to tego mi brakuje. Musze sprawic zeby wyswietlilty sie imiona i nazwiska pracownikow ktorzy obsluzyli co najmniej 4 zamowienia, z tym ze zamowienia sa w innej tabeli i podane jako ord.salesrepid ktore przypada na jakiegos tam pracownika z emp. No i jak wstawie prostszy kod np:
select count(salesrepid) from ord group by salesrepid
to mi elegancko zlicza kto ma ile zamowien. Ale jak probuje uzyc czegos na te logike w tym dluzszym to nie chce wyjsc ;f

W necie nigdzie nie ma( ͡° ʖ̯ ͡°)
  • 3
@zygmuntt:

select distinct firstname, lastname from emp
inner join (select salesrepid, count(salesrepid) as liczba from ord
) ord ON ord.SALESREPID=emp.id and ord.liczba >= 4
group by ord.salesrepid

quick wyjasnienie:
Inner join obejmie wszystkich pracowników którzy mają conajmniej jeden rekord w ord i emp. (spełnia warunki twojego exist) jak i cel zapytania jesli pytamy o pracowników ktorzy obslużyli co najmniej 4 zamowienia.
Dołanczamy tą tabele jako sub-query po ID jako sub-query z