Let op: dit is een oudere versie van deze publicatie. Ga naar de laatste versie

Uitwisselprofiel Zorgkantoren Inkoopondersteuning en beleidsontwikkeling

Versie:

Publicatiedatum:21-12-2023

Inwerkingtreding:21-12-2023




Bekijk bron...

5.1.0 Leeftijdsopbouw personeel in loondienst

Concepten

Relaties

Eigenschappen

SPARQL query

Code gekopieerd

...

Kopieer naar klembord

1# Indicator: Zorgkantoren 5.1
2# Parameters: ($kwartaal)
3# Ontologie: versie 2.1.1
4
5PREFIX onz-g: <http://purl.org/ozo/onz-g#>
6PREFIX onz-org: <http://purl.org/ozo/onz-org#>
7PREFIX onz-pers: <http://purl.org/ozo/onz-pers#>
8PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
9PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
10PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
11
12SELECT  
13    ?vestiging
14    (SUM(?1620) AS ?16_20)
15    (SUM(?2125) AS ?21_25)
16    (SUM(?2630) AS ?26_30)
17    (SUM(?3135) AS ?31_35)
18    (SUM(?3640) AS ?36_40)
19    (SUM(?4145) AS ?41_45)
20    (SUM(?4650) AS ?46_50)
21    (SUM(?5155) AS ?51_55)
22    (SUM(?5660) AS ?56_60)
23    (SUM(?6165) AS ?61_65)
24    (SUM(?6670) AS ?66_70)
25    (SUM(?7175) AS ?71_75)
26{
27    {
28        SELECT DISTINCT ?v ?werknemer ?start_periode ?eind_periode
29        WHERE {
30            BIND(($kwartaal) AS ?kwartaal)
31            BIND(
32                IF(?kwartaal = 'Q1', '2023-01-01'^^xsd:date, 
33                IF(?kwartaal = 'Q2', '2023-04-01'^^xsd:date,
34                IF(?kwartaal = 'Q3', '2023-07-01'^^xsd:date,
35                IF(?kwartaal = 'Q4', '2023-10-01'^^xsd:date, 
36                '')))) AS ?start_periode )
37            BIND(?start_periode + "P3M"^^xsd:duration - "P1D"^^xsd:duration AS ?eind_periode)
38            
39            ?overeenkomst
40                a onz-pers:ArbeidsOvereenkomst ;
41                onz-pers:heeftOpdrachtnemer ?werknemer ;
42                onz-g:isAbout ?locatie ;
43                onz-g:isAbout ?functie .
44            ?functie 
45                a onz-g:OccupationalPositionRole ;
46                onz-g:startDatum ?start_functie .
47            OPTIONAL {?functie onz-g:eindDatum ?eind_functie}
48            FILTER(?start_functie <= ?eind_periode && 
49                  (?eind_functie >= ?start_periode || !BOUND(?eind_functie)))
50            ?locatie 
51                a onz-g:StationaryArtifact ;
52                onz-g:partOf* ?v .
53        }
54    }
55    {
56        ?v 
57            a onz-org:Vestiging ;
58            onz-g:identifiedBy ?vest_nr.
59        ?vest_nr a onz-org:Vestigingsnummer ;
60            onz-g:hasDataValue ?vestiging .
61    } UNION {
62        #Includeer ook de organisatie als geheel en label deze als vestiging
63        ?v onz-org:vestigingVan ?organisatie_uri .
64        ?organisatie_uri 
65            a onz-g:Business ;
66            rdfs:label ?Organisatie .
67        BIND(CONCAT('Totaal ',?Organisatie) AS ?vestiging)
68    }        
69    ?werknemer 
70        a onz-g:Human ;
71        onz-g:hasDateOfBirth ?geboortedatum .
72    
73    BIND(YEAR(?eind_periode) - YEAR(?geboortedatum) AS ?leeftijd_voorl)
74    BIND(IF(MONTH(?geboortedatum) > MONTH(?eind_periode) 
75        || (MONTH(?geboortedatum) = MONTH(?eind_periode) && DAY(?geboortedatum) > DAY(?eind_periode)), 
76        ?leeftijd_voorl - 1, ?leeftijd_voorl) AS ?leeftijd)
77    
78    BIND(IF(?leeftijd >= 16 && ?leeftijd <= 20, 1, 0) AS ?1620)
79    BIND(IF(?leeftijd >= 21 && ?leeftijd <= 25, 1, 0) AS ?2125)
80    BIND(IF(?leeftijd >= 26 && ?leeftijd <= 30, 1, 0) AS ?2630)
81    BIND(IF(?leeftijd >= 31 && ?leeftijd <= 35, 1, 0) AS ?3135)
82    BIND(IF(?leeftijd >= 36 && ?leeftijd <= 40, 1, 0) AS ?3640)
83    BIND(IF(?leeftijd >= 41 && ?leeftijd <= 45, 1, 0) AS ?4145)
84    BIND(IF(?leeftijd >= 46 && ?leeftijd <= 50, 1, 0) AS ?4650)
85    BIND(IF(?leeftijd >= 51 && ?leeftijd <= 55, 1, 0) AS ?5155)
86    BIND(IF(?leeftijd >= 56 && ?leeftijd <= 60, 1, 0) AS ?5660)
87    BIND(IF(?leeftijd >= 61 && ?leeftijd <= 65, 1, 0) AS ?6165)
88    BIND(IF(?leeftijd >= 66 && ?leeftijd <= 70, 1, 0) AS ?6670)
89    BIND(IF(?leeftijd >= 71 && ?leeftijd <= 75, 1, 0) AS ?7175)
90    BIND(IF(?leeftijd >= 75 , 1, 0) AS ?75_)
91}
92GROUP BY ?vestiging
93ORDER BY ?vestiging

Heb je feedback?

Loopt u tegen een issue of vraag aan bij het KIK-V product? Neem dan contact met ons op!