﻿<?xml version="1.0" encoding="utf-8"?>
<ReportsExport>
  <Reports>
    <Report id="0b28c2f8-ca54-4fff-871c-8d003d46e14f" codekey="export_learnprogress_mram" categoryCodekey="SpecialPurpose" name="Lernstandsdaten für Export MRAM" description="Lernstandsdaten für Export MRAM">
      <MetaData created="2012-04-27T13:59:33" createdBy_user_id="25487" modified="2021-04-21T15:08:36" modifiedBy="ELECT, Administrator (Administrator)" modifiedBy_user_id="2" />
      <ExecutionDetails format="TableResult" commandType="SqlCommandOrQuery" exportHandler="" adminControl="" exportMultipleTablesToSheets="True" datesWithTime="False" extraParams="" />
      <Mandators mandatorMode="OnlyOwner" mandator_id="d5a90a49-e697-4aeb-8a5b-298782815490" mandatorName="ELECT" isStandard="False" isUsedByMenu="False" />
      <Parameters>
        <Parameter id="4c4528c8-5327-4efe-9024-bf9383b727b3" isRequired="True" allowMultiSelect="False" name="Kommzahl" contextName="Kommzahl" defaultValue="80,0" renderHint="Undefined" disableParameter="DontDisable" />
        <Parameter id="8a788b48-9545-44e3-a700-678759456e6a" isRequired="True" allowMultiSelect="False" name="Ganze Zahl" contextName="Ganze Zahl" defaultValue="365" renderHint="Undefined" disableParameter="DontDisable" />
        <Parameter id="c34dbe08-0158-4ad3-9e5d-9b603447c72a" isRequired="False" allowMultiSelect="False" name="Text" contextName="Text" defaultValue="zz_loc_CHI,zz_loc_CLU,zz_loc_NYC,zz_loc_NYC_external,zz_loc_PCT," renderHint="Undefined" disableParameter="DontDisable" />
      </Parameters>
      <Roles />
      <command>
        --DECLARE @current_mandator_id uniqueidentifier
        --DECLARE @string VARCHAR(500)
        --DECLARE @integer INT
        --DECLARE @float FLOAT
        --for debugging !!!
        --SET @endDate = '2011-12-30'
        --SET @string = 'zz_user_mram'
        --      SET @float = 90
        --      SET @integer = 1000
        --      SET @current_mandator_id = 'D5A90A49-E697-4AEB-8A5B-298782815490'

        DECLARE @dateFrom datetime
        DECLARE @endDate datetime
        CREATE TABLE #tmpTargetGroups(
        TargetGroupId INT,
        TargetGroupName VARCHAR(500) COLLATE database_default,
        requestedTargetGroup INT
        )
        CREATE TABLE #tmpUsersThemes (
        UserId INT,
        ThemeId UNIQUEIDENTIFIER
        )

        SET @endDate = GETDATE()



        SET @dateFrom = dateadd(day,-1 * @integer,@endDate)

        INSERT INTO #tmpTargetGroups
        SELECT tblTargetGroups.id, tblTargetGroups.title, 1 FROM
        tblTargetGroups INNER JOIN fn_SplitByDelimiter(@string,',') AS splitted
        ON splitted.value = tblTargetGroups.title AND defaultforlibrary = 0

        -- we have a given set of targetgroups
        -- for those we have to detect the users assigned to
        -- as for those assigned users we need all user assigned targetgroups for detecting the themes
        ;WITH hlpTargetGroups(targetGroup_id)
        AS
        (
        SELECT DISTINCT mergedTargetGroups.targetGroup_id
        FROM tblUsersTargetGroups AS originalUsers
        INNER JOIN #tmpTargetGroups AS requestedTargetGroups ON requestedTargetGroups.TargetGroupId = originalUsers.targetGroup_id
        INNER JOIN tblUsersTargetGroups AS mergedTargetGroups ON mergedTargetGroups.UserCn = originalUsers.UserCn
        )
        INSERT INTO #tmpTargetGroups
        SELECT DISTINCT targetGroup_id, tblTargetGroups.title, 0 FROM hlpTargetGroups INNER JOIN tblTargetGroups ON targetGroup_id = tblTargetGroups.id
        AND tblTargetGroups.defaultforlibrary = 0

        -- Fill temporary table with all distinct user / theme associations that fullfill the @float criteria
        ;WITH CTE
        AS
        (
        SELECT DISTINCT tblUsersTargetGroups.UserCn, tblModuleItems.item_id AS theme_id
        FROM
        tblEduOffersTargetGroups
        INNER JOIN
        #tmpTargetGroups
        ON  #tmpTargetGroups.TargetGroupId = tblEduOffersTargetGroups.targetGroup_id
        INNER JOIN
        tblEduOffersModules ON tblEduOffersTargetGroups.eduOffer_id = tblEduOffersModules.eduOffer_id
        INNER JOIN tblModuleItems ON tblEduOffersModules.module_id = tblModuleItems.module_id
        INNER JOIN tblUsersTargetGroups ON tblUsersTargetGroups.targetGroup_id = #tmpTargetGroups.TargetGroupId
        INNER JOIN tblStatusUserCourse ON tblModuleItems.item_id = tblStatusUserCourse.theme_id
        AND tblUsersTargetGroups.UserCn = tblStatusUserCourse.UserId
        AND tblStatusUserCourse.BestComplete &gt; @float
        )
        INSERT INTO #tmpUsersThemes( UserId, ThemeId )
        SELECT CTE.UserCn, CTE.theme_id FROM CTE
        INNER JOIN tblUsersTargetGroups ON tblUsersTargetGroups.UserCn = CTE.UserCn
        INNER JOIN #tmpTargetGroups ON #tmpTargetGroups.TargetGroupId = tblUsersTargetGroups.targetGroup_id AND #tmpTargetGroups.requestedTargetGroup = 1

        --SELECT * FROM #tmpUsersThemes

        SELECT
        tblItems.tag AS 'Course Title / Course Number',
        v_Users.descUserCn AS 'Employee ID',
        v_Users.Nachname AS 'Last Name',
        v_Users.Vorname AS 'First Name',
        CONVERT(VARCHAR(12),tblStatusUserCourse.BestCompleteDate,103) AS 'Completion Date',
        'C' AS 'Credit Type',
        '' AS 'Time',
        CASE WHEN tblStatusUserCourse.BestExams &gt; -1 THEN CAST(tblStatusUserCourse.BestExams AS NVARCHAR(3)) ELSE '' END AS 'Score',
        (SELECT CONVERT(VARCHAR(12),MIN(tblStatsThemeSessions.startTime),103)
        FROM tblStatsThemeSessions
        WHERE tblStatsThemeSessions.theme_id = tblThemes.id AND tblStatsThemeSessions.user_id = v_Users.intUserCn
        ) AS 'Date of Enrollment',
        '' AS 'Required',
        '' AS 'Due Date',
        '' AS 'Comments'
        FROM
        v_Users
        INNER JOIN
        #tmpUsersThemes
        ON v_Users.intUserCn = #tmpUsersThemes.UserId
        INNER JOIN
        tblThemes
        ON #tmpUsersThemes.ThemeId = tblThemes.id
        INNER JOIN
        tblStatusUserCourse
        ON #tmpUsersThemes.UserId = tblStatusUserCourse.UserId AND tblThemes.id = tblStatusUserCourse.theme_id
        INNER JOIN tblItems ON tblItems.id = tblThemes.id
        WHERE
        tblItems.deleted IS NULL
        AND tblStatusUserCourse.BestCompleteDate BETWEEN  @dateFrom AND @endDate
        DROP TABLE #tmpUsersThemes

        DROP TABLE #tmpTargetGroups
      </command>
    </Report>
  </Reports>
  <Parameters>
    <Parameter id="4c4528c8-5327-4efe-9024-bf9383b727b3" isSystem="True" name="Kommzahl" reportParameterType_id="aed4563f-99a8-4741-88ac-803413dff9d1" queryParameterName="@float" />
    <Parameter id="8a788b48-9545-44e3-a700-678759456e6a" isSystem="True" name="Ganze Zahl" reportParameterType_id="51b6166f-7a5a-4db3-b4ae-d9b9632dc129" queryParameterName="@integer" />
    <Parameter id="c34dbe08-0158-4ad3-9e5d-9b603447c72a" isSystem="True" name="Text" reportParameterType_id="6e221a70-58e9-46eb-b028-181b9983b2f6" queryParameterName="@string" />
  </Parameters>
  <ParameterTypes>
    <ParameterType id="aed4563f-99a8-4741-88ac-803413dff9d1" isSystem="True" name="Float" datatype="Float" dataValueField="" dataTextField="" />
    <ParameterType id="51b6166f-7a5a-4db3-b4ae-d9b9632dc129" isSystem="True" name="Integer" datatype="Integer" dataValueField="" dataTextField="" />
    <ParameterType id="6e221a70-58e9-46eb-b028-181b9983b2f6" isSystem="True" name="String" datatype="String" dataValueField="" dataTextField="" />
  </ParameterTypes>
</ReportsExport>