﻿<?xml version="1.0" encoding="utf-8"?>
<ReportsExport>
  <Reports>
    <Report id="56df8dac-76ee-4478-a4a9-d9055927502e" codekey="ActiveLearnersPerTargetgroup" categoryCodekey="UserStats" name="Active Learners per Targetgroup" description="this report is countig the active users which are learning actively on themes assigned to them, grouped by targetgroup">
      <MetaData created="2016-07-07T11:16:42" createdBy="Betz, Holger (holger.betz1)" createdBy_user_id="37276" modified="2021-03-19T09:59:03" modifiedBy="Betz, Holger (holger.betz1)" modifiedBy_user_id="37276" />
      <ExecutionDetails format="TableResult" commandType="SqlCommandOrQuery" exportHandler="" adminControl="" exportMultipleTablesToSheets="False" datesWithTime="False" extraParams="" />
      <Mandators mandatorMode="IncludeMandators" mandator_id="d5a90a49-e697-4aeb-8a5b-298782815490" mandatorName="ELECT" isStandard="True" isUsedByMenu="False" />
      <Roles />
      <command>
        -- preparing helping table for the learners which already have a kind of status
        -- DECLARE @current_mandator_id UNIQUEIDENTIFIER
        SET @current_mandator_id = 'D5A90A49-E697-4AEB-8A5B-298782815490'


        -- CR: 28751!
        -- 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
        DECLARE @hlpTargetGroups dbo.[typeIntList]
        ;WITH hlpTargetGroups(targetGroup_id)
        AS
        (
        SELECT DISTINCT mergedTargetGroups.targetGroup_id
        FROM tblUsersTargetGroups AS originalUsers
        INNER JOIN (SELECT id AS value FROM tblTargetGroups WHERE title LIKE 'zz[_]loc%') AS requestedTargetGroups ON requestedTargetGroups.value = originalUsers.targetGroup_id
        INNER JOIN tblUsersTargetGroups AS mergedTargetGroups ON mergedTargetGroups.UserCn = originalUsers.UserCn
        )
        INSERT INTO @hlpTargetGroups
        SELECT targetGroup_id FROM hlpTargetGroups

        DECLARE @users TABLE
        (
        user_id INT
        )
        -- determine all the users which active chain and learning status for the targetgroups starting with zz_loc
        INSERT INTO @users
        SELECT DISTINCT tblUsersTargetGroups.UserCn  FROM tblEduOffers
        INNER JOIN tblEduOffersModules ON tblEduOffersModules.eduOffer_id = tblEduOffers.id
        INNER JOIN tblModuleItems ON tblModuleItems.module_id = tblEduOffersModules.module_id
        INNER JOIN tblThemes ON tblThemes.id = tblModuleItems.item_id
        INNER JOIN tblItems ON tblItems.id = tblThemes.id AND tblItems.deleted IS NULL
        INNER JOIN tblEduOffersTargetGroups ON tblEduOffersTargetGroups.eduOffer_id = tblEduOffersModules.eduOffer_id
        INNER JOIN @hlpTargetGroups AS tblTargetGroups ON tblTargetGroups.value = tblEduOffersTargetGroups.targetGroup_id
        INNER JOIN tblUsersTargetGroups ON tblUsersTargetGroups.targetGroup_id = tblTargetGroups.value
        WHERE
        1=1
        AND tblItems.mandator_id = @current_mandator_id
        AND EXISTS(SELECT * FROM tblStatusUserCourse WHERE UserId = tblUsersTargetGroups.UserCn AND theme_id = tblModuleItems.item_id) -- only users which have real learn progress
        AND EXISTS(SELECT * FROM tableUsers WHERE mandator_id = @current_mandator_id AND intUserCn = tblUsersTargetGroups.UserCn AND tableUsers.deleted IS NULL) -- only active users

        SELECT tblTargetGroups.title AS 'Targetgroup', COUNT(*) AS 'Active Learner', (SELECT COUNT(*) FROM tblUsersTargetGroups WHERE targetGroup_id = tblTargetGroups.id) AS 'Total Learner' FROM tblTargetGroups
        INNER JOIN tblUsersTargetGroups ON tblTargetGroups.id = tblUsersTargetGroups.targetGroup_id
        INNER JOIN @users AS users ON users.user_id = tblUsersTargetGroups.UserCn
        WHERE tblTargetGroups.title LIKE 'zz[_]loc%'
        GROUP BY tblTargetGroups.id, tblTargetGroups.title
        ORDER BY tblTargetGroups.title
      </command>
    </Report>
  </Reports>
</ReportsExport>