Mam następujące zadanie:

  1. Napisać zapytanie SQL które da taki sam wynik jak w tabeli Zadanie_View.

Proszę przy użyciu danych napisać zapytanie SQL zwracające tabelę zawierającą następujące dane:
WorkerId – id pracownika,
StartDate – start pracy,
Klient – nazwa klienta,
Tydzień – nr tygodnia w roku,
Ilość – d1/d4 + 0, 999999,
Start – start pracy pracownika, wartość z time0 lub dla ułatwienia wartość z [constDate5],
Koniec - koniec pracy pracownika, wartość z time3 lub dla ułatwienia wartość z [constDate4],
CzasPracy – różnica między startem pracy a końcem pracy (decymalnie),
Wydajność – wartość liczona z wzoru: ((d1/d4) + 0.999999) / suma przepracowanych godzin * 100
Bierzemy pod uwagę tylko wiersze spełniające warunki: State = 3 oraz Visible = 1

Tabela przedstawia wszystkie czynności wykonane przez pracownika w danym okresie tzn. jeśli
pracownika wykonał 30 rzeczy, będzie to reprezentowane przez 30 wierszy w tabeli, każda czynność
będzie określona przez ilość oraz początek (time0) i koniec (time3) rozpoczęcia wykonywania
czynności. Start pracy rozumiem jako rozpoczęcie pierwszej czynności przez pracownika, koniec
natomiast jako zakończenie wykonywania ostatniej czynności.

select WorkerID, count(*), StartDate, client as Klient,
min(constDate5) as start,
max(constDate4) as koniec,
from WorkerData

group by WorkerID, client, StartDate
order by WorkerID, StartDate;

Przy takim zapytaniu jak wyżej działa tak jak powinno, selectuje mi WorkerID, StartDate, i Klient start, koniec (pracy kazdego pracownika) oraz je grupuje odpowiednio, ale jak chcę dodać

CzasPracy – różnica między startem pracy a końcem pracy (decymalnie), i zapytanie zmieniam na następujące

select WorkerID, count(*), StartDate, client as Klient,
min(constDate5) as start,
max(constDate4) as koniec,
datediff (minute, constDate5, constDate4) as CzasPracy
from WorkerData

group by constDate4, constDate5, WorkerID, client, StartDate
order by WorkerID, StartDate;

to wtedy niestety mi rozgrupowuje wszystko i pokazuje sie "milion" rekordów ( nie dla kazdego pracownika, tylko dla kazdej czynnosci pracownika).

z góry dziękuje za pomoc ps. jestem poczatkujacy.