Query voor prestatie medewerkers

Status
Niet open voor verdere reacties.

RJD1986

Gebruiker
Lid geworden
10 jan 2012
Berichten
9
Beste experts,

ik wil graag een query maken waarmee ik kan zien wat de medewerkers per maand aan een bepaald aan werkuren heeft. Ik heb 5 soorten, namelijk:

  • Kantoor uren
  • Ziek uren
  • Verlof
  • Bijzonder verlof
  • Productief

Op dit moment is er deze Query:

VoorbeeldDB.jpg

VoorbeeldQuery.jpg

Code:
SELECT X.ZOEKNAAM, SYSADM_URENMUTATIES.JAAR, SYSADM_URENMUTATIES.WEEKNR, SYSADM_URENMUTATIES.DAGNR, SYSADM_UURSOORT.OMSCHR, CDbl([SYSADM_URENMUTATIES].[AANTAL]) AS AANTAL, IIf([SYSADM_UURSOORT]![OMSCHR]="Overwerk 125% PP" Or [SYSADM_UURSOORT]![OMSCHR]="Overwerk 150% PP" Or [SYSADM_UURSOORT]![OMSCHR]="Tijd Voor Tijd 115% ma tm vr" Or [SYSADM_UURSOORT]![OMSCHR]="Tijd Voor Tijd 130% za en zo" Or [SYSADM_UURSOORT]![OMSCHR]="Tijd voor tijd 100%" Or [SYSADM_UURSOORT]![OMSCHR]="Verschoven tijden 25%","out","in") AS Categ, Month([SYSADM_URENMUTATIES]![MUTATIEDATUM]) AS [Month], SYSADM_URENMUTATIES.MUTATIEDATUM
FROM (SELECT DISTINCT SYSADM_PERSOON_INFO.CDPERSOON, SYSADM_PERSOON_INFO.ZOEKNAAM
FROM SYSADM_PERSOON_INFO)  AS X INNER JOIN (SYSADM_URENMUTATIES INNER JOIN SYSADM_UURSOORT ON SYSADM_URENMUTATIES.CDUURSOORT = SYSADM_UURSOORT.CDUURSOORT) ON X.CDPERSOON = SYSADM_URENMUTATIES.CDWERKNEMER
WHERE (((SYSADM_URENMUTATIES.MUTATIEDATUM)<=Date()-Day(Now()) And (SYSADM_URENMUTATIES.MUTATIEDATUM)>=Date()-Day(Now())-365));


Waarbij productief berekent kan worden door het totaal aantal uren van de maand te nemen minus Kantoor uren, ziek uren, verlof en bijzonder verlof. Ik wil dat het er zo uit komt te zien

Voorbeeld.jpg

Kantoor uren, ziek uren, verlof en bijzonder verlof zijn dus opgetelde waardes per maand. Op dit moment bevinden deze soorten zich in het veld "Omschr"(zie bovenstaand plaatje), maar deze zou ik graag als opgetelde waardes, zoals in bovenstaand plaatje, willen zien.


Mijn vraag is dan ook of dit te realiseren is? Bij voorbaat dank!!!
 
Laatst bewerkt:
RJD1986,

Probeer deze query is en kijk of dit is wat je zoekt.

Code:
SELECT 
  X.ZOEKNAAM, 
  SYSADM_URENMUTATIES.JAAR, 
  SYSADM_URENMUTATIES.WEEKNR, 
  SYSADM_URENMUTATIES.DAGNR, 
  SYSADM_UURSOORT.OMSCHR, 
  (Select CDbl([SYSADM_URENMUTATIES].[AANTAL]) 
    From SYSADM_URENMUTTIES
    WHERE X.CDPERSOOON = SYSADM_URENMUTATIES AND
      SYSADM_UURSOORT.OMSCHR NOT IN 
         ("Overwerk 125% PP","Overwerk 150% PP", "Tijd Voor Tijd 115% ma tm vr",
          "Tijd Voor Tijd 130% za en zo","Tijd voor tijd 100%", "Verschoven tijden 25%")) AS "Kantoor uren", 
  (Select CDbl([SYSADM_URENMUTATIES].[AANTAL]) 
    From SYSADM_URENMUTTIES
    WHERE X.CDPERSOOON = SYSADM_URENMUTATIES AND
      SYSADM_UURSOORT.OMSCHR = "Ziek uren" ) AS "Ziek uren", 
  (Select CDbl([SYSADM_URENMUTATIES].[AANTAL]) 
    From SYSADM_URENMUTTIES
    WHERE X.CDPERSOOON = SYSADM_URENMUTATIES AND
      SYSADM_UURSOORT.OMSCHR = "Speciaal verlof" ) AS "Bijzonder verlof", 
  (Select CDbl([SYSADM_URENMUTATIES].[AANTAL]) 
    From SYSADM_URENMUTTIES
    WHERE X.CDPERSOOON = SYSADM_URENMUTATIES AND
      SYSADM_UURSOORT.OMSCHR NOT IN 
         ("Overwerk 125% PP","Overwerk 150% PP", "Tijd Voor Tijd 115% ma tm vr",
          "Tijd Voor Tijd 130% za en zo","Tijd voor tijd 100%", "Verschoven tijden 25%",
          "Ziek uren","Speciaal verlof")) AS "Productief"
FROM 
    (SELECT 
	DISTINCT SYSADM_PERSOON_INFO.CDPERSOON, 
	SYSADM_PERSOON_INFO.ZOEKNAAM
     FROM SYSADM_PERSOON_INFO)  AS X INNER JOIN 
		(SYSADM_URENMUTATIES INNER JOIN 
			SYSADM_UURSOORT 
			ON SYSADM_URENMUTATIES.CDUURSOORT = SYSADM_UURSOORT.CDUURSOORT) 
			ON X.CDPERSOON = SYSADM_URENMUTATIES.CDWERKNEMER
WHERE 
	SYSADM_URENMUTATIES.MUTATIEDATUM <= Date()-Day(Now() And 
	SYSADM_URENMUTATIES.MUTATIEDATUM >= Date()-Day(Now()-365;

Veel Succes.
 
Riekt als een simpele kruistabel....
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan