De gegevens waar de demo de resultaten toont komen uit een drietal MS Excel Spreadsheets:
De gegevens zijn uit de MS Excel sheets overgebracht naar een MS SQL 2014 database server. Zowel de AFAS als de REGAS gegevens bevatten het AFAS personeelsnummer waarmee de gegevens van beide systemen gecombineerd kunnen worden.
Voor dit scherm word gebruikt gemaakt van de MS Excel sheets met personeelsgegevens en de gecumuleerde tijdregistratie gegevens.
Op dit scherm zijn 2 staafdiagrammen. De gegevens zijn deels berekend in MS SQL Server en deels in Power BI.
Om de gegevens te kunnen weergeven, wordt een deel van de berekeningen uitgevoerd in SQL Server. In een view en een functie worden de uren berekend welke in de rapportage worden gebruikt.
Er zijn in de MS Excel sheet alleen totaal uren geregistreerd. Voor de demonstratie zijn deze uren opgedeeld in verschillende categorieën.
De periode beslaat een aantal dagen van begin datum tot einddatum. Binnen deze periode vallen een aantal dagen waarin niet gewerkt wordt, zoals bv. weekeinden en officiële vakantiedagen. Hiervoor word de volgende functie gebruikt.
CREATE FUNCTION [dbo].[NetWorkDays]( @StartDate DATETIME ,@EndDate DATETIME ) RETURNS INT AS BEGIN DECLARE @result INT ,@StartDate2 DATETIME ,@EndDate2 DATETIME ,@HolidayCount INT SET @StartDate2 = DATEADD(d,8-DATEPART(dw, @StartDate), @StartDate) SET @EndDate2 = DATEADD(d,1-DATEPART(dw ,@EndDate), @EndDate) SET @result = DATEDIFF(d, @StartDate2, @EndDate2) * 5 / 7 + DATEDIFF(d, @StartDate, @StartDate2) - 1 + DATEDIFF(d, @EndDate2, @EndDate) - CASE WHEN DATEPART(dw,@StartDate) = 1 THEN 1 ELSE 0 END - case when DATEPART(dw,@EndDate) = 7 THEN 1 ELSE 0 END SET @HolidayCount = (SELECT COUNT(*) FROM Holiday WHERE [Date] BETWEEN @StartDate AND @EndDate) RETURN @result - @HolidayCount END |