﻿<?xml version="1.0" encoding="utf-8"?>
<ReportsExport>
  <Reports>
    <Report id="01fcd733-923d-42a7-873b-22437716ab3e" codekey="ERGODirekt_EinstellungstestErgebnisse" categoryCodekey="UserStats" name="Einstellungstest: Ergebnisse aller aktiven Benutzer" description="">
      <MetaData created="2021-10-20T11:03:52" createdBy="Kaiser, Jan-Patrick (jan.kaiser)" createdBy_user_id="17275" modified="2021-10-28T10:14:30" modifiedBy="ERGO Direkt, Administrator (Administrator)" modifiedBy_user_id="888" />
      <ExecutionDetails format="TableResult" commandType="SqlCommandOrQuery" exportHandler="" adminControl="" exportMultipleTablesToSheets="False" datesWithTime="False" extraParams="" />
      <Mandators mandatorMode="OnlyOwner" mandator_id="c5fd8bcc-2b1a-4f1d-b30d-9063c3f768cc" mandatorName="ERGODirekt" isStandard="False" isUsedByMenu="False" />
      <Roles>
        <Role id="90" />
      </Roles>
      <command>/**
 * Setup
**/
DECLARE @mandator_id UNIQUEIDENTIFIER = @current_mandator_id
DECLARE @script_user_id int = dbo.fn_GetAutoScriptUserId(@mandator_id)


/**
 * 
 * All active users
 * 
**/
SELECT intUserCn,descUserCn, Vorname, Nachname,contact.zipcode, contact.email, created,uc.customAttribute1 AS "BewerberID",uc.customAttribute2 AS "StellenID"
INTO #users
FROM tableUsers u
INNER JOIN tblUserCustomAttributes uc ON uc.user_id = u.intUserCn
INNER JOIN tblUsersContacts contact ON contact.user_id = u.intUserCn AND contactType_id = 1
WHERE mandator_id = @mandator_id
AND userStatus &lt;&gt; 2
AND deleted IS NULL
AND SecurityID = 10
AND EXISTS(
	SELECT TOP 1 suih.* FROM tblStatusUserItemHistory suih
	INNER JOIN tblItems i ON i.id = suih.item_id AND i.mandator_id = @mandator_id
	WHERE suih.user_id = u.intUserCn
	AND i.itemType_id = 1
	AND (i.title = 'ERGO Einstellungstest (IHK)' OR i.title = 'ERGO Einstellungstest (WI)' )
	ORDER BY status DESC
)




/**
 * Find best result for each user
**/

SELECT 
u.*,
items.status,
items.percentage,
items.item_id,
items.startDate as "startDate",
(SELECT score FROM tblThemeSessionSCORMData WHERE themeSession_id = items.session_id AND scoIdentifier = 'ITEM-PART1') AS "score_part1",
(
	SELECT masteryscore FROM tblThemeStructures
	WHERE theme_id = items.item_id
	AND identifier = 'ITEM-PART1'
) AS "masteryscore_part1",
(SELECT score FROM tblThemeSessionSCORMData WHERE themeSession_id = items.session_id AND scoIdentifier = 'ITEM-PART2') AS "score_part2",
(
	SELECT masteryscore FROM tblThemeStructures
	WHERE theme_id = items.item_id
	AND identifier = 'ITEM-PART2'
) AS "masteryscore_part2",
(SELECT score FROM tblThemeSessionSCORMData WHERE themeSession_id = items.session_id AND scoIdentifier = 'ITEM-PART3') AS "score_part3",
(
	SELECT masteryscore FROM tblThemeStructures
	WHERE theme_id = items.item_id
	AND identifier = 'ITEM-PART3'
) AS "masteryscore_part3",
(SELECT score FROM tblThemeSessionSCORMData WHERE themeSession_id = items.session_id AND scoIdentifier = 'ITEM-SUMMARY') AS "score_summary"
INTO #usersAndResults
FROM #users u
OUTER APPLY(
	SELECT TOP 1 tblStatusUserItemHistory.* FROM tblStatusUserItemHistory
	INNER JOIN tblItems i ON i.id = tblStatusUserItemHistory.item_id AND i.mandator_id = @mandator_id
	WHERE user_id = u.intUserCn
	AND i.itemType_id = 1
	AND i.title = 'ERGO Einstellungstest (IHK)'
	ORDER BY status DESC, percentage DESC
) AS items

SELECT 
descUserCn,
Vorname AS "Vorname",
Nachname AS "Nachname",
email AS "Email",
(SELECT title FROM tblItems WHERE id =  #usersAndResults.item_id) AS "WBT",
CASE
WHEN status = 0 or status IS NULL THEN 'eingeladen' -- zum EET eingeladen
WHEN status = 1 THEN 'In Bearbeitung' -- Teilnahme am EET
WHEN status = 2 AND (
	score_part1 &lt; 30 OR
	score_part2 &lt; 30 OR
	score_part3 &lt; 30 
) THEN 'nicht bestanden'
WHEN status = 2 AND score_summary &gt; 66 THEN 'bestanden' -- EET bestanden
ELSE 'nicht bestanden' -- EET nicht bestanden
END AS "Status",
score_part1 AS "Teil 1", -- Part1
score_part2 AS "Mathe", -- Mathe
score_part3 AS "Allgemeinwissen", -- Allgemeinwissen
score_summary AS "Gesamt", -- Gesamt
startDate AS "Datum"
FROM #usersAndResults
ORDER by Datum DESC


IF OBJECT_ID('tempdb..#users') IS NOT NULL
	DROP TABLE #users

IF OBJECT_ID('tempdb..#usersAndResults') IS NOT NULL
	DROP TABLE #usersAndResults</command>
    </Report>
  </Reports>
</ReportsExport>