﻿<?xml version="1.0" encoding="utf-8"?>
<ReportsExport>
  <Reports>
    <Report id="8db109a5-2e5a-4819-b218-544bfc6b2140" codekey="Debeka_BISTrainings" categoryCodekey="Trainings" name="Business Intelligence System: Trainings Area" description="">
      <MetaData created="2015-04-13T08:47:03" createdBy="Gabi Wappler (WAPP)" createdBy_user_id="760" modified="2015-07-27T09:30:34" modifiedBy="Administrator Debeka" />
      <ExecutionDetails format="TableResult" commandType="SqlCommandOrQuery" exportHandler="" adminControl="" exportMultipleTablesToSheets="False" datesWithTime="False" extraParams="" />
      <Mandators mandatorMode="OnlyOwner" mandator_id="6279bb24-f218-49e0-9155-7c1cb1dba226" mandatorName="Debeka" isStandard="False" isUsedByMenu="False" />
      <Parameters>
        <Parameter id="bf72399d-7582-4b2a-a06c-8d47afe576f2" isRequired="False" name="Von" contextName="Von" defaultValue="" renderHint="Undefined" disableParameter="DontDisable" />
        <Parameter id="80245dc5-ca96-4c76-9449-2b5d07b129e9" isRequired="False" name="Bis" contextName="Bis" defaultValue="" renderHint="Undefined" disableParameter="DontDisable" />
      </Parameters>
      <Roles>
        <Role id="90" />
      </Roles>
      <command>
        --DECLARE @startDate DATETIME  = DATEADD(dd, -90, DATEDIFF(dd, 0, GETDATE()))
--DECLARE @endDate DATETIME   = GETDATE()

DECLARE @qualification_id UNIQUEIDENTIFIER
SELECT @qualification_id = id
  FROM tblQualifications
 WHERE referenceKey = 'gutberaten'

DECLARE @TrainingTrainers TABLE(training_id UNIQUEIDENTIFIER, 
                                trainer NVARCHAR(512),
                                isIntern BIT)

-- gather trainers pro training in a table
INSERT INTO @TrainingTrainers
SELECT #Trainings.training_id, 
       CASE
           WHEN tblTrainers.user_id IS NULL THEN ', ' + ISNULL(tblTrainers.firstName, '') + ' ' + ISNULL(tblTrainers.lastName, '')
           ELSE v_Users.descUserCn + ', ' + ISNULL(v_Users.Vorname, '') + ' ' + ISNULL(v_Users.Nachname, '')
       END,
       CASE 
        WHEN tblTrainers.user_id IS NULL THEN 0
        ELSE 1
       END
  FROM(
       SELECT DISTINCT training_id
         FROM tblUserTrainingStatus
        WHERE actionclass_id = 80
          AND (@startDate IS NULL OR actionTime &gt;= @startDate)
          AND (@endDate IS NULL OR actionTime &lt;= @endDate)) AS #Trainings
      LEFT JOIN tblTrainingsTrainers ON tblTrainingsTrainers.training_id = #Trainings.training_id
      LEFT JOIN tblTrainers ON tblTrainers.id = tblTrainingsTrainers.trainer_id
      LEFT JOIN v_Users ON v_Users.intUserCn = tblTrainers.user_id


DECLARE @TrainersTraining TABLE(training_id UNIQUEIDENTIFIER, 
                                trainers NVARCHAR(MAX))

INSERT INTO @TrainersTraining
SELECT training_id, 
       (
       SELECT TOP 5 trainer + ', '
         FROM @TrainingTrainers AS t2 
        WHERE t2.training_id = t1.training_id
        ORDER BY isIntern desc, trainer asc
        FOR XML PATH('')) AS trainers
  FROM @TrainingTrainers AS t1 
 GROUP BY training_id


SELECT Kennung,
       id AS 'Objekt-ID',
       AngelegtvonKennung AS 'Angelegt von Kennung', 
       Seminartitel,
       Seminarbezeichnung,
       TitelLerner  AS 'Titel für Lerner',
       Kennzeichen,
       TrainerKennungen  AS 'Trainer-Kennungen',
       Ort,
       Startdatum,
       Startzeit,
       Endedatum,
       Endezeit,
       UE,
       totalEducationTime AS BZ
       --CASE WHEN score &lt; 10 THEN '0' + CONVERT(VARCHAR, score) 
       --      ELSE CONVERT(VARCHAR(2), score)
       --END AS BP
FROM (SELECT descUserCn AS Kennung, 
       --Nachname AS Name, 
       --Vorname, 
       --office AS Dienststelle, 
       --division AS Abteilung, 
       tblTrainings.id, -- AS 'Objekt-ID', 
       (SELECT v_Users.descUserCn FROM v_Users WHERE v_Users.intUserCn = tblItems.createdBy_user_id) AS AngelegtvonKennung, 
       (
       SELECT LEFT(title, 100)
         FROM tblItems
        WHERE id = trainingTitle_id) AS Seminartitel, 
       LEFT(tblItems.title, 150) AS Seminarbezeichnung, 
       LEFT(tblItems.titleForLearners, 100) AS TitelLerner, 
       tblItems.tag AS Kennzeichen, 
       CASE WHEN LEN(trainers) &gt; 1 THEN LEFT(trainers, LEN(trainers) - 1) 
       ELSE '' END AS TrainerKennungen, 
       LEFT(tblTrainings.location, 40) AS Ort, 
       CONVERT(VARCHAR, tblTrainings.startDate, 104) AS Startdatum, 
       CONVERT(CHAR(5), tblTrainings.startDate, 108)  AS Startzeit, 
       CONVERT(VARCHAR, tblTrainings.endDate, 104) AS Endedatum, 
       CONVERT(CHAR(5), tblTrainings.endDate, 108)  AS Endezeit, 
       CASE WHEN CHARINDEX(',',courseunits) &gt; 0 THEN courseunits --REPLICATE('0',5-LEN(courseunits)) + courseunits
             WHEN CHARINDEX('.',courseunits) &gt; 0 THEN REPLACE(courseunits, '.', ',') --REPLICATE('0',5-LEN(courseunits)) +
             WHEN courseunits IS NULL OR LEN(courseunits) = 0 THEN '0,0'
             ELSE courseunits + ',0' --REPLICATE('0',3-LEN(courseunits)) + 
       END AS UE, 
       ISNULL((SELECT SUM(educationTime)
                FROM tblUserItemScores
                        JOIN tblUserItemScoresQualifications ON tblUserItemScores.id = tblUserItemScoresQualifications.useritemscore_id
                        JOIN tblQualifications ON tblUserItemScoresQualifications.qualification_id = tblQualifications.id
                        JOIN tblUserQualificationPeriods ON tblQualifications.id = tblUserQualificationPeriods.qualification_id
                                                        AND tblUserQualificationPeriods.user_id = tblUserTrainingStatus.user_id AND tblUserQualificationPeriods.endDate IS NULL                   
                WHERE tblQualifications.id =  @qualification_id  AND  tblUserItemScores.user_id = tblUserTrainingStatus.user_id AND tblUserItemScores.item_id = tblUserTrainingStatus.training_id
                GROUP BY tblUserItemScores.user_id), 0) AS totalEducationTime
  FROM tblUserTrainingStatus
       JOIN v_Users ON v_Users.intUserCn = tblUserTrainingStatus.user_id
       JOIN tblTrainings ON tblTrainings.id = tblUserTrainingStatus.training_id
       JOIN tblItems ON tblItems.id = tblTrainings.id
       LEFT JOIN @TrainersTraining AS tmpTrainers ON tmpTrainers.training_id = tblUserTrainingStatus.training_id
 WHERE actionclass_id = 80 AND descUserCn LIKE 'p%'
   AND (@startDate IS NULL OR actionTime &gt;= @startDate)
   AND (@endDate IS NULL OR actionTime &lt;= @endDate) ) AS infos
 ORDER BY Kennung
      </command>
    </Report>
  </Reports>
  <Parameters>
    <Parameter id="bf72399d-7582-4b2a-a06c-8d47afe576f2" isSystem="True" name="Von" reportParameterType_id="74253ba7-a386-4620-bff7-b65c16fe1e64" queryParameterName="@startDate" />
    <Parameter id="80245dc5-ca96-4c76-9449-2b5d07b129e9" isSystem="True" name="Bis" reportParameterType_id="74253ba7-a386-4620-bff7-b65c16fe1e64" queryParameterName="@endDate" />
  </Parameters>
  <ParameterTypes>
    <ParameterType id="74253ba7-a386-4620-bff7-b65c16fe1e64" isSystem="True" name="Date" datatype="Date" dataValueField="" dataTextField="" />
  </ParameterTypes>
</ReportsExport>