Zgubiłem się tutaj

Mam dwa stoły

To jest układ okresowy

enter image description here

I tabela dni

enter image description here

Tabela dni zlicza dni pracownika, kiedy wyjechał na wakacje

Tabela okresów jest tabelą tymczasową utworzoną z wielu instrukcji if else

Chcę dołączyć do tabeli dni z tabelą okresów pogrupowaną według lat (i ewentualnie użyć funkcji agregujących)

---- EDYTUJ ---- Oto zapytanie o tabelę dni

Select COUNT(isMandatory) + COUNT(isVacation) as 'Mandatory/Sick', COUNT(isSick) as Sick, 
YEAR (date) as 'Year' from datesInclusiveTable where leaveID in 
(select leaveID from leaveTable where acctNo = 'M29076')
Group by YEAR (date)

Widzisz, ma funkcje agregujące

Chciałbym opublikować zapytanie dotyczące tabeli okresów, ale jest za długie i może być

Zbyt skomplikowane, aby na nie patrzeć

1
kol 5 marzec 2020, 09:48

2 odpowiedzi

Najlepsza odpowiedź

Jeśli DateStarted (lub DateEnded) są typu data:

SELECT * FROM Days D
INNER JOIN Period P ON YEAR(P.DateStarted) = D.Year
0
Cedersved 5 marzec 2020, 06:56

Spróbuj tego:

SELECT * FROM Days D
JOIN Period P ON YEAR(CONVERT(date, P.DateStarted)) = D.Year;
0
Naveen Arora 5 marzec 2020, 06:58