Code gekopieerd
...Kopieer naar klembord
1# Indicator: ODB Personele samenstelling 2.1.1 2# Parameters: - 3# Ontologie: versie 2.0.0 of nieuwer 4 5PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> 6PREFIX time: <http://www.w3.org/2006/time#> 7PREFIX onz-pers: <http://purl.org/ozo/onz-pers#> 8PREFIX onz-g: <http://purl.org/ozo/onz-g#> 9 10SELECT 11 (SUM(?factor_totaal) AS ?indicator) 12{ 13 SELECT #alle factoren bij elkaar optellen, max per persoon beperken tot 1 14 ?persoon 15 (IF(SUM(?dagen_indicator/?dagen_periode) > 1, 1,SUM(?dagen_indicator/?dagen_periode))AS ?factor_totaal) 16 { 17 SELECT DISTINCT #functies die op dezelfde dag starten, samenvoegen op de functie met de meeste dagen 18 ?persoon 19 ?dagen_periode 20 ?start_functie_corr 21 (MAX(?dagen_functie) AS ?dagen_indicator) 22 { 23 # definieer periode waarin overeenkomst geldig moet zijn 24 BIND("2023-01-01"^^xsd:date AS ?start_periode_datum) 25 BIND("2023-12-31"^^xsd:date AS ?eind_periode_datum) 26 ?start_periode_datum ^time:inXSDDate/time:inTemporalPosition/time:numericPosition ?start_periode . 27 ?eind_periode_datum ^time:inXSDDate/time:inTemporalPosition/time:numericPosition ?eind_periode . 28 BIND(?eind_periode - ?start_periode + 1 AS ?dagen_periode) 29 30 # selecteer werkovereenkomsten waarbij werknemer een zorgverlenerfunctie heeft 31 ?functie 32 a onz-pers:ZorgverlenerFunctie ; 33 onz-g:startDatum ?start_functie_datum . 34 OPTIONAL { 35 ?functie onz-g:eindDatum ?eind_functie_datum . 36 } 37 FILTER(?start_functie_datum <= ?eind_periode_datum && (?eind_functie_datum >= ?start_periode_datum || !BOUND(?eind_functie_datum))) 38 BIND(IF(?start_functie_datum < ?start_periode_datum, ?start_periode_datum, ?start_functie_datum) AS ?start_functie_datum_corr) 39 BIND(IF(!BOUND(?eind_functie_datum) || ?eind_functie_datum > ?eind_periode_datum, ?eind_periode_datum, ?eind_functie_datum) AS ?eind_functie_datum_corr) 40 ?start_functie_datum_corr ^time:inXSDDate/time:inTemporalPosition/time:numericPosition ?start_functie_corr . 41 ?eind_functie_datum_corr ^time:inXSDDate/time:inTemporalPosition/time:numericPosition ?eind_functie_corr . 42 BIND(?eind_functie_corr - ?start_functie_corr + 1 AS ?dagen_functie) 43 44 ?overeenkomst 45 a onz-pers:ArbeidsOvereenkomst ; 46 onz-g:isAbout ?functie ; 47 onz-pers:heeftOpdrachtnemer ?persoon . 48 } 49 GROUP BY ?persoon ?dagen_periode ?start_functie_corr 50 ORDER BY ?persoon 51 } 52 GROUP BY ?persoon 53} 54
Loopt u tegen een issue of vraag aan bij het KIK-V product? Neem dan contact met ons op!