Mam następujące zadanie:
- 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.