﻿<?xml version="1.0" encoding="utf-8"?>
<ReportsExport>
  <Reports>
    <Report id="de6aa1a2-2411-471c-828c-ad697de58944" codekey="Debeka_BISTests" categoryCodekey="TestsAndQuestions" name="Business Intelligence System: Tests" description="">
      <MetaData created="2015-04-14T12:12:25" createdBy="Gabi Wappler (WAPP)" createdBy_user_id="2" modified="2015-11-06T18:10:25" 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" allowMultiSelect="False" name="Von" contextName="Von" defaultValue="" renderHint="Undefined" disableParameter="DontDisable" />
        <Parameter id="80245dc5-ca96-4c76-9449-2b5d07b129e9" isRequired="False" allowMultiSelect="False" name="Bis" contextName="Bis" defaultValue="" renderHint="Undefined" disableParameter="DontDisable" />
      </Parameters>
      <Roles>
        <Role id="90" />
      </Roles>
      <command>-- DECLARE @startDate DATETIME = DATEADD(dd, -400, DATEDIFF(dd, 0, GETDATE()))
-- DECLARE @endDate DATETIME = DATEADD(dd, -270, DATEDIFF(dd, 0, GETDATE())) --GETDATE()

DECLARE @Results TABLE (--registernumber NVARCHAR(100),
                        Kennung NVARCHAR(64),
                        --Name NVARCHAR(128),
                        --Vorname NVARCHAR (128),
                        --Dienststelle NVARCHAR(64),
                        --Abteilung NVARCHAR(128),
                        item_id UNIQUEIDENTIFIER,
                        status_id UNIQUEIDENTIFIER,
                        Bezeichnung NVARCHAR(150),
                        StartDate DATETIME,
                        Startdatum VARCHAR(12),
                        Startzeit CHAR(5),
                        Endedatum VARCHAR(12),
                        Endezeit CHAR(5),
                        Status VARCHAR(128),
                        Prozent VARCHAR(128),
                        Versuch INT)
                        --,Fragen VARCHAR(64))

INSERT INTO @Results
SELECT --registernumber, --AS 'Vermittler-ID', 
       descUserCn AS Kennung, 
       --Nachname AS Name, 
       --Vorname, 
       --office AS Dienststelle, 
       --division AS Abteilung, 
       tblStatusUserItemHistory.item_id, --AS --'Objekt-ID', 
       tblStatusUserItemHistory.id as status_id,
       LEFT(COALESCE(tblItemVersions.titleForLearners, tblItemVersions.title), 150) AS Bezeichnung,
       (SELECT startDate
         FROM tblTasTestSessions
        WHERE tblTasTestSessions.id = v_TblTasStatsTestSessionsAll.testsession_id),
       CONVERT(VARCHAR, (
       SELECT startDate
         FROM tblTasTestSessions
        WHERE tblTasTestSessions.id = v_TblTasStatsTestSessionsAll.testsession_id), 104) AS Startdatum, 
       CONVERT(CHAR(5), (
       SELECT startDate
         FROM tblTasTestSessions
        WHERE tblTasTestSessions.id = v_TblTasStatsTestSessionsAll.testsession_id), 108) AS Startzeit, 
       CONVERT(VARCHAR, (
       SELECT endDate
         FROM tblTasTestSessions
        WHERE tblTasTestSessions.id = v_TblTasStatsTestSessionsAll.testsession_id), 104) AS Endedatum, 
       CONVERT(CHAR(5), (
       SELECT endDate
         FROM tblTasTestSessions
        WHERE tblTasTestSessions.id = v_TblTasStatsTestSessionsAll.testsession_id), 108) AS Endezeit, 
       CASE
           --WHEN tblStatusUserItemHistory.status IS NULL THEN 'Nicht bearbeitet'
           WHEN tblStatusUserItemHistory.status = 2 THEN 'Bestanden'
           ELSE 'Nicht bestanden'
       END AS Status, 
       CASE WHEN v_TblTasStatsTestSessionsAll.pctQuestions IS NULL THEN '0%'
            --WHEN v_TblTasStatsTestSessionsAll.pctQuestions &lt; 10 THEN '00' + LEFT(CAST(v_TblTasStatsTestSessionsAll.pctQuestions AS VARCHAR), LEN(CAST(v_TblTasStatsTestSessionsAll.pctQuestions AS VARCHAR)) - 3) + '%' 
            --WHEN v_TblTasStatsTestSessionsAll.pctQuestions &lt; 100 THEN '0' + LEFT(CAST(v_TblTasStatsTestSessionsAll.pctQuestions AS VARCHAR), LEN(CAST(v_TblTasStatsTestSessionsAll.pctQuestions AS VARCHAR)) - 3) + '%' 
            ELSE LEFT(CAST(v_TblTasStatsTestSessionsAll.pctQuestions AS VARCHAR), LEN(CAST(v_TblTasStatsTestSessionsAll.pctQuestions AS VARCHAR)) - 3) + '%' 
       END AS Prozent, 
       DENSE_RANK() OVER (PARTITION BY tblStatusUserItemHistory.user_id, 
                                     tblStatusUserItemHistory.item_id ORDER BY tblStatusUserItemHistory.startDate) AS Versuch 
       --,CAST(ISNULL((
       --SELECT COUNT(*)
       --  FROM tblTasStatsTestSessionQuestions
       -- WHERE tblTasStatsTestSessionQuestions.testsession_id = v_TblTasStatsTestSessionsAll.testsession_id
       --   AND tblTasStatsTestSessionQuestions.correct = 1), 0) AS VARCHAR) + ' von ' + CAST(ISNULL((
       --SELECT COUNT(*)
       --  FROM tblTasStatsTestSessionQuestions
       -- WHERE tblTasStatsTestSessionQuestions.testsession_id = v_TblTasStatsTestSessionsAll.testsession_id), 0) AS VARCHAR) + ' Fragen' AS Fragen
--,status
  FROM tblStatusUserItemHistory
       JOIN v_Users ON v_Users.intUserCn = tblStatusUserItemHistory.user_id
       INNER JOIN v_TblTasStatsTestSessionsAll ON tblStatusUserItemHistory.item_id = v_TblTasStatsTestSessionsAll.test_id
                                              AND v_TblTasStatsTestSessionsAll.user_id = tblStatusUserItemHistory.user_id
                                              AND tblStatusUserItemHistory.session_id = v_TblTasStatsTestSessionsAll.testsession_id
       INNER JOIN tblTasTestVersions ON v_TblTasStatsTestSessionsAll.test_id = tblTasTestVersions.id
                                    AND tblTasTestVersions.mode &lt; 2
                                    AND /* no polls and feedbacks */
                                        EXISTS(
                                               SELECT *
                                                 FROM tblVersionMap
                                                WHERE id = tblTasTestVersions.id
                                                  AND tableName = 'tblTasTestVersions'
                                                  AND subVersion = tblTasTestVersions.version
                                                  AND mainVersion = v_TblTasStatsTestSessionsAll.test_version)
       INNER JOIN tblItemVersions ON tblItemVersions.id = tblStatusUserItemHistory.item_id
                                 AND EXISTS(
                                            SELECT *
                                              FROM tblVersionMap
                                             WHERE id = tblItemVersions.id
                                               AND tableName = 'tblItemVersions'
                                               AND subVersion = tblItemVersions.version
                                               AND mainVersion = tblStatusUserItemHistory.item_version)
 WHERE tblItemVersions.itemType_id = 0 AND tblItemVersions.isExternal = 0 AND tblStatusUserItemHistory.status = 2
   AND (@startDate IS NULL OR tblStatusUserItemHistory.startDate &gt;= @startDate)
   AND (@endDate IS NULL OR tblStatusUserItemHistory.startDate &lt;= @endDate)  
   AND v_Users.mandator_id = @current_mandator_id



-- ORDER BY Nachname, Vorname, tblStatusUserItemHistory.startDate

-- now insert external items since those entries doesn't have any session
INSERT INTO @Results
SELECT DISTINCT --registernumber, 
                descUserCn,
                --Nachname, 
                --Vorname, 
                --division, 
                --office, 
                tblStatusUserItemHistory.item_id,
                tblStatusUserItemHistory.id as status_id,
                LEFT(COALESCE(tblItemVersions.titleForLearners, tblItemVersions.title), 150) AS Bezeichnung, 
                tblExternalItemVersions.startdate,
                CONVERT(VARCHAR, tblExternalItemVersions.startdate, 104),
                CONVERT(CHAR(5), tblExternalItemVersions.startdate, 108),
                CONVERT(VARCHAR, tblExternalItemVersions.endDate, 104),
                CONVERT(CHAR(5), tblExternalItemVersions.endDate, 108),                
                       'Bestanden' AS Status, 
       '100%' AS Prozent, 
       1 AS Versuch 
       --,'' AS Fragen
    FROM tblStatusUserItemHistory 
        INNER JOIN v_Users ON v_Users.intUserCn = tblStatusUserItemHistory.user_id
        INNER JOIN tblExternalItemVersions ON tblExternalItemVersions.id = tblStatusUserItemHistory.item_id
                                                        AND EXISTS(
                                                                    SELECT *
                                                                    FROM tblVersionMap
                                                                    WHERE id = tblExternalItemVersions.id
                                                                        AND tableName = 'tblExternalItemVersions'
                                                                        AND subVersion = tblExternalItemVersions.version
                                                                        AND mainVersion = tblStatusUserItemHistory.item_version)
        INNER JOIN tblItemVersions ON tblItemVersions.id = tblExternalItemVersions.id
                                            AND EXISTS(
                                                        SELECT *
                                                        FROM tblVersionMap
                                                        WHERE id = tblItemVersions.id
                                                            AND tableName = 'tblItemVersions'
                                                            AND subVersion = tblItemVersions.version
                                                            AND mainVersion = tblStatusUserItemHistory.item_version)
    WHERE tblStatusUserItemHistory.status = 2 /* for external items there is only status 2 available */
    AND tblItemVersions.isVisibleInEducationCard = 1 /* no difference between admin and learner			 */
    AND tblItemVersions.isExternal = 1
    AND tblItemVersions.itemType_id = 0
    AND (@startDate IS NULL OR tblStatusUserItemHistory.startDate &gt;= @startDate)
    AND (@endDate IS NULL OR tblStatusUserItemHistory.startDate &lt;= @endDate)  
    AND v_Users.mandator_id = @current_mandator_id
    


SELECT --registernumber AS 'Vermittler-ID',
       Kennung,
       --Name,
       --Vorname,
       --Dienststelle,
       --Abteilung,
       item_id AS 'Objekt-ID',
       status_id AS 'Status-ID',
       Bezeichnung,
       Startdatum,
       Startzeit,
       Endedatum,
       Endezeit,
       Status,
       Prozent,
       Versuch
       --CASE WHEN Versuch &lt; 10 THEN '0' + CONVERT(VARCHAR(1), Versuch)
       --ELSE CONVERT(VARCHAR(2), Versuch) END AS Versuch
       --,Fragen
FROM @Results
WHERE Kennung LIKE 'p%'
ORDER BY Kennung, StartDate
</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>