﻿<?xml version="1.0" encoding="utf-8"?>
<ReportsExport>
  <Reports>
    <Report id="5b040c86-3b07-459b-9903-5fb3c950c6d5" codekey="Bonitestresults" categoryCodekey="TestsAndQuestions" name="Bonifikationstestergebnisse" description="Dieser Report listet alle Ergebnisse von Bonifikationstests auf">
      <MetaData created="2020-06-05T11:43:09" createdBy="ERGO_e-Campus, Administrator (Administrator)" createdBy_user_id="243" modified="2022-02-15T10:41:15" modifiedBy="Kaiser, Jan-Patrick (245527)" modifiedBy_user_id="101393" />
      <ExecutionDetails format="TableResult" commandType="SqlCommandOrQuery" exportHandler="" adminControl="" exportMultipleTablesToSheets="False" datesWithTime="False" extraParams="" />
      <Mandators mandatorMode="OnlyOwner" mandator_id="bfa70f6b-484c-49da-9ad7-1ccd8f0d684c" isStandard="False" isUsedByMenu="False" />
      <Roles />
      <command>-- CleanUP
IF OBJECT_ID('tempdb..#tableWithAllResults') IS NOT NULL
	DROP TABLE #tableWithAllResults

IF OBJECT_ID('tempdb..#grpMeTable') IS NOT NULL
	DROP TABLE #grpMeTable

IF OBJECT_ID('tempdb..#testlist') IS NOT NULL
	DROP TABLE ##testList
/*
DECLARE @current_mandator_id UNIQUEIDENTIFIER
SET @current_mandator_id = (SELECT id FROM tblMandators WHERE name = 'ERGO_e-Campus')

DECLARE @targetGroupId typeIntList
INSERT INTO @targetGroupId SELECT id FROM tblTargetGroups WHERE mandator_id = @current_mandator_id

DECLARE @targetGroupName NVARCHAR(200)
-- SET @targetGroupName = 'FVV_IHK_Ausbildung_Akademie - % - 2020-%'
-- SET @targetGroupName = 'FVV_IHK_Ausbildung_Akademie - 1 - 2020-1'
*/
DECLARE @SachgebietA typeStringList
INSERT INTO @SachgebietA VALUES ('Lebensversicherung / Private Rentenversicherung'),('Gesetzliche Rentenversicherung'),('Grundzüge der betrieblichen Altersversorgung'),('Lebens-/Rentenversicherungen')

DECLARE @SachgebietB typeStringList
INSERT INTO @SachgebietB VALUES ('Unfallversicherung'),('Krankenversicherung / Pflegeversicherung'),('Kranken-/Pflegeversicherung')

DECLARE @SachgebietC typeStringList
INSERT INTO @SachgebietC VALUES('Rechtliche Grundlagen')

DECLARE @SachgebietD typeStringList
INSERT INTO @SachgebietD VALUES('Hausratversicherung'),('Gebäudeversicherung'),('Wohngebäudeversicherung')

DECLARE @SachgebietE typeStringList
INSERT INTO @SachgebietE VALUES ('Haftpflichtversicherung'),('Kraftfahrtversicherung'), ('Rechtsschutzversicherung')

CREATE TABLE #testList(
	test_id uniqueidentifier,
	test_title NVARCHAR(MAX)
)

INSERT INTO #testList
SELECT tt.id,i.title
FROM tblTasTests tt
INNER JOIN tblItems i ON i.id = tt.id
WHERE tt.mandator_id = @current_mandator_id
AND deleted IS NULL
AND (
	i.title LIKE 'FVV_IHK_Ausbildung_Akademie TuS%' 
	OR
	i.title LIKE 'FVV_IHK_Ausbildung_Akademie IHK%' 
	)

-- Table For the SachgebietCursor
CREATE TABLE #sachgebiete(
	title NVARCHAR(50)
)

INSERT INTO #sachgebiete VALUES ('SachgebietA'),('SachgebietB'),('SachgebietC'),('SachgebietD'),('SachgebietE')

-- Hold the Results
CREATE TABLE #tableWithAllResults(
	Zielgruppe NVARCHAR(MAX), --TargetGroup
	Testname NVARCHAR(MAX), --TestTitle
	Kennung NVARCHAR(8), --descUserCN
	Name NVARCHAR(MAX), --Nachname
	Vorname NVARCHAR(MAX), --Vorname
	Abteilung NVARCHAR(50), --division
	Dienststelle NVARCHAR(50),
	Datum date, --test.startdate
	Status NVARCHAR(MAX), -- suih.percent
	Prozent NVARCHAR(20),
	"Punkte Gesamt" NVARCHAR(220),
	"Sachgebiet A" NVARCHAR(MAX), -- Testpart
	"Punkte A" NVARCHAR(MAX),
	"LV" NVARCHAR(MAX),
	"Punkte LV" NVARCHAR(MAX),
	"GRV" NVARCHAR(MAX),
	"Punkte GRV" NVARCHAR(MAX),
	"bAV" NVARCHAR(MAX),
	"Punkte bAV" NVARCHAR(MAX),
	"Sachgebiet B" NVARCHAR(MAX), -- Testpart
	"Punkte B" NVARCHAR(MAX),
	"UV" NVARCHAR(MAX),
	"Punkte UV" NVARCHAR(MAX),
	"KR" NVARCHAR(MAX),
	"Punkte KR" NVARCHAR(MAX),
	"Sachgebiet C" NVARCHAR(MAX), -- Testpart
	"Punkte C" NVARCHAR(MAX),
	"RGL" NVARCHAR(MAX),
	"Punkte RGL" NVARCHAR(MAX),
	"Sachgebiet D" NVARCHAR(MAX), -- Testpart
	"Punkte D" NVARCHAR(MAX),
	"HR" NVARCHAR(MAX),
	"Punkte HR" NVARCHAR(MAX),
	"VGV" NVARCHAR(MAX),
	"Punkte VGV" NVARCHAR(MAX),
	"Sachgebiet E" NVARCHAR(MAX), -- Testpart
	"Punkte E" NVARCHAR(MAX),
	"VHV" NVARCHAR(MAX),
	"Punkte VHV" NVARCHAR(MAX),
	"KFZ" NVARCHAR(MAX),
	"Punkte KFZ" NVARCHAR(MAX),
	"RS" NVARCHAR(MAX),
	"Punkte RS" NVARCHAR(MAX),
)

-- Alle Testsessions der betroffenen User der Zielgruppen
DECLARE @user_id INT
DECLARE @test_id uniqueidentifier
DECLARE @tg_title NVARCHAR(70)
DECLARE @test_title NVARCHAR(70)
DECLARE @Nachname NVARCHAR(40)
DECLARE @Vorname NVARCHAR(40)
DECLARE @testsession_id uniqueidentifier

-- Cursor um die Stats für jede Session zu holen
DECLARE session_cursor CURSOR FAST_FORWARD FOR
SELECT DISTINCT
suih.user_id,
suih.item_id,
t.title,
(SELECT title FROM tblTasTests WHERE tblTasTests.id = suih.item_id) AS testname,
u.Nachname,
u.Vorname,
tts.testsession_id
FROM tblStatusUserItemHistory suih
INNER JOIN tblUsersTargetGroups utg ON utg.UserCn = suih.user_id
INNER Join (
	SELECT id, title FROM tblTargetGroups tg
	WHERE tg.title LIKE (
		'FVV_IHK_Ausbildung_Akademie - % % - %'
	)
	OR tg.title LIKE (
		'FVV_IHK_Ausbildung_Akademie - % - % %'
	)
) AS t ON t.id = utg.targetGroup_id
INNER JOIN tblTasTestSessions sess ON sess.id = suih.session_id
INNER JOIN tblTasStatsTestSessions tts ON tts.testsession_id = suih.session_id AND tts.user_id = suih.user_id
INNER JOIN (
	SELECT intUserCn,Nachname, Vorname, SecurityID FROM v_Users
) AS u ON u.intUserCn = suih.user_id
WHERE suih.item_id IN (SELECT test_id FROM #testList)
AND DATEDIFF(SECOND,sess.startDate, sess.endDate) &gt; 10
AND u.SecurityID = 10
ORDER BY suih.user_id

OPEN session_cursor
FETCH NEXT FROM session_cursor INTO @user_id, @test_id,@tg_title, @test_title, @Nachname, @Vorname, @testsession_id
WHILE @@FETCH_STATUS = 0
BEGIN
	DECLARE @SachgebietACorrect DECIMAL(5,2), @SachgebietBCorrect DECIMAL(5,2), @SachgebietCCorrect DECIMAL(5,2), @SachgebietDCorrect DECIMAL(5,2) ,@SachgebietECorrect DECIMAL(5,2)
	DECLARE @SachgebietACount DECIMAL(5,2), @SachgebietBCount DECIMAL(5,2), @SachgebietCCount DECIMAL(5,2), @SachgebietDCount DECIMAL(5,2) ,@SachgebietECount DECIMAL(5,2)
	DECLARE @GesamtProzent INT, @SachgebietAProzent INT, @SachgebietBProzent INT, @SachgebietCProzent INT, @SachgebietDProzent INT ,@SachgebietEProzent INT

	CREATE TABLE #grpMeTable(
		correct Decimal(3,2),
		topic NVARCHAR(MAX),
		session uniqueidentifier,
		question uniqueidentifier,
		test uniqueidentifier
	)
	
	INSERT INTO #grpMeTable
	SELECT DISTINCT
	(SELECT correct FROM tblTasStatsTestSessionQuestions where testsession_id = @testsession_id and question_id = ttsq.questionId) AS correct,
	dbo.fn_GetResourceString((SELECT c.name_resource_id FROM tblTasQuestionCategories c WHERE c.id =  ttsq.topicId), 1031,1,1033) AS 'topic',
	@testsession_id,
	ttsq.questionId,
	@test_id
	FROM tblTasTestParts ttp 
	INNER JOIN tblTasTestSessionQuestions ttsq ON ttsq.testSessionId = @testsession_id
	AND ttp.test_id = @test_id
	-- ORDER BY topicId

	SET @SachgebietACount = ISNULL((SELECT COUNT(correct) FROM #grpMeTable WHERE topic IN (SELECT * FROM @SachgebietA)),0)
	SET @SachgebietBCount = ISNULL((SELECT COUNT(correct) FROM #grpMeTable WHERE topic IN (SELECT * FROM @SachgebietB)),0)
	SET @SachgebietCCount = ISNULL((SELECT COUNT(correct) FROM #grpMeTable WHERE topic IN (SELECT * FROM @SachgebietC)),0)
	SET @SachgebietDCount = ISNULL((SELECT COUNT(correct) FROM #grpMeTable WHERE topic IN (SELECT * FROM @SachgebietD)),0)
	SET @SachgebietECount = ISNULL((SELECT COUNT(correct) FROM #grpMeTable WHERE topic IN (SELECT * FROM @SachgebietE)),0)

	SET @SachgebietACorrect = ISNULL((SELECT SUM(correct) FROM #grpMeTable WHERE topic IN (SELECT * FROM @SachgebietA)),0)
	SET @SachgebietBCorrect = ISNULL((SELECT SUM(correct) FROM #grpMeTable WHERE topic IN (SELECT * FROM @SachgebietB)),0)
	SET @SachgebietCCorrect = ISNULL((SELECT SUM(correct) FROM #grpMeTable WHERE topic IN (SELECT * FROM @SachgebietC)),0)
	SET @SachgebietDCorrect = ISNULL((SELECT SUM(correct) FROM #grpMeTable WHERE topic IN (SELECT * FROM @SachgebietD)),0)
	SET @SachgebietECorrect = ISNULL((SELECT SUM(correct) FROM #grpMeTable WHERE topic IN (SELECT * FROM @SachgebietE)),0)

	DECLARE @GesamtCount DECIMAL(5,2) = @SachgebietACount + @SachgebietBCount + @SachgebietCCount + @SachgebietDCount + @SachgebietECount
	DECLARE @GesamtCorrect DECIMAL(5,2) = @SachgebietACorrect + @SachgebietBCorrect + @SachgebietCCorrect + @SachgebietDCorrect + @SachgebietECorrect

	INSERT INTO #tableWithAllResults 
	VALUES(
		@tg_title,
		(SELECT title FROM tblItems WHERE id = @test_id),
		(Select descUserCn FROM v_Users WHERE intUserCn = @user_id),
		@Nachname,
		@Vorname,
		(Select division FROM v_Users WHERE intUserCn = @user_id),
		(Select office FROM v_Users WHERE intUserCn = @user_id),
		(Select endDate FROM tblTasStatsTestSessions WHERE testsession_id = @testsession_id),
		CASE
			WHEN(Select passed FROM tblTasStatsTestSessions WHERE testsession_id = @testsession_id) = 0 THEN 'Nicht bestanden'
			ELSE 'Bestanden'
		END,
		CASE 
			WHEN @GesamtCount = 0 THEN '-'
			ELSE CAST(CAST(Round(@GesamtCorrect*100/@GesamtCount,0) AS INT) AS NVARCHAR) + '%'
		END,
		CASE 
			WHEN ISNULL(@GesamtCount,0) = 0 THEN '-'
			ELSE ISNULL(CAST(CAST(@GesamtCorrect AS INT) as nvarchar) + ' von ' + CAST(CAST(@GesamtCount AS INT) as nvarchar), '-') 
		END,
		CASE
			WHEN @SachgebietACount = 0 THEN '-'
			ELSE ISNULL(CAST(CAST(ROUND((@SachgebietACorrect*100)/@SachgebietACount,0) AS INT) AS NVARCHAR) + '%', '-')
		END,
		CASE 
			WHEN (SELECT COUNT(correct) FROM #grpMeTable WHERE topic IN (SELECT * FROM @SachgebietA)) = 0 THEN '-'
			ELSE CAST(CAST((SELECT SUM(correct) FROM #grpMeTable WHERE topic IN (SELECT * FROM @SachgebietA)) AS INT) as nvarchar) + ' von ' + CAST((SELECT COUNT(correct) FROM #grpMeTable WHERE topic IN (SELECT * FROM @SachgebietA)) as nvarchar) 
		END,

		ISNULL(CAST(CAST(ROUND(((SELECT SUM(correct) FROM #grpMeTable WHERE topic LIKE 'Lebens%')*100)/(SELECT COUNT(correct) FROM #grpMeTable WHERE topic LIKE 'Lebens%'),0) AS INT) AS NVARCHAR) + '%','-'),
		CASE 
			WHEN (SELECT COUNT(correct) FROM #grpMeTable WHERE topic LIKE 'Lebens%') = 0 THEN '-'
			ELSE CAST(CAST((SELECT SUM(correct) FROM #grpMeTable WHERE topic LIKE 'Lebens%')AS INT) as nvarchar) + ' von ' + CAST(CAST((SELECT COUNT(correct) FROM #grpMeTable WHERE topic LIKE 'Lebens%') AS INT) as nvarchar) 
		END,
		
		ISNULL(CAST(CAST(ROUND(((SELECT SUM(correct) FROM #grpMeTable WHERE topic ='Gesetzliche Rentenversicherung')*100)/(SELECT COUNT(correct) FROM #grpMeTable WHERE topic ='Gesetzliche Rentenversicherung'),0)AS INT) AS NVARCHAR) + '%','-'),
		CASE 
			WHEN (SELECT COUNT(correct) FROM #grpMeTable WHERE topic ='Gesetzliche Rentenversicherung') = 0 THEN '-'
			ELSE CAST(CAST((SELECT SUM(correct) FROM #grpMeTable WHERE topic ='Gesetzliche Rentenversicherung')AS INT) as nvarchar) + ' von ' + CAST(CAST((SELECT COUNT(correct) FROM #grpMeTable WHERE topic ='Gesetzliche Rentenversicherung') AS INT)as nvarchar) 
		END,

		ISNULL(CAST(CAST(ROUND(((SELECT SUM(correct) FROM #grpMeTable WHERE topic ='Grundzüge der betrieblichen Altersversorgung')*100)/(SELECT COUNT(correct) FROM #grpMeTable WHERE topic ='Grundzüge der betrieblichen Altersversorgung'),0) AS INT) AS NVARCHAR) + '%', '-'),
		CASE 
			WHEN (SELECT COUNT(correct) FROM #grpMeTable WHERE topic ='Grundzüge der betrieblichen Altersversorgung') = 0 THEN '-'
			ELSE CAST(CAST((SELECT SUM(correct) FROM #grpMeTable WHERE topic ='Grundzüge der betrieblichen Altersversorgung') AS INT) as nvarchar)
			+ ' von ' + 
			CAST(CAST((SELECT COUNT(correct) FROM #grpMeTable WHERE topic ='Grundzüge der betrieblichen Altersversorgung') AS INT) as nvarchar) 
		END,
		
		ISNULL(CAST(CAST(ROUND(((SELECT SUM(correct) FROM #grpMeTable WHERE topic IN (SELECT * FROM @SachgebietB))*100)/(SELECT COUNT(correct) FROM #grpMeTable WHERE topic IN (SELECT * FROM @SachgebietB)),0) AS INT) AS NVARCHAR) + '%', '-'),
		CASE 
			WHEN (SELECT COUNT(correct) FROM #grpMeTable WHERE topic IN (SELECT * FROM @SachgebietB)) = 0 THEN '-'
			ELSE CAST(CAST((SELECT SUM(correct) FROM #grpMeTable WHERE topic IN (SELECT * FROM @SachgebietB)) AS INT) as nvarchar) + ' von ' + CAST(CAST((SELECT COUNT(correct) FROM #grpMeTable WHERE topic IN (SELECT * FROM @SachgebietB)) AS INT )as nvarchar) 
		END,		

		ISNULL(CAST(CAST(ROUND(((SELECT SUM(correct) FROM #grpMeTable WHERE topic ='Unfallversicherung')*100)/(SELECT COUNT(correct) FROM #grpMeTable WHERE topic ='Unfallversicherung'),0)AS INT) AS NVARCHAR) + '%', '-'),
		CASE 
			WHEN (SELECT COUNT(correct) FROM #grpMeTable WHERE topic ='Unfallversicherung') = 0 THEN '-'
			ELSE CAST(CAST((SELECT SUM(correct) FROM #grpMeTable WHERE topic ='Unfallversicherung')AS INT) as nvarchar)
			+ ' von ' + 
			CAST(CAST((SELECT COUNT(correct) FROM #grpMeTable WHERE topic ='Unfallversicherung')AS INT) as nvarchar) 
		END,

		ISNULL(CAST(CAST(ROUND(((SELECT SUM(correct) FROM #grpMeTable WHERE topic LIKE 'Kranken%')*100)/(SELECT COUNT(correct) FROM #grpMeTable WHERE topic LIKE 'Kranken%') ,0) AS INT )AS NVARCHAR) + '%', '-'),
		CASE 
			WHEN (SELECT COUNT(correct) FROM #grpMeTable WHERE topic LIKE 'Kranken%') = 0 THEN '-'
			ELSE CAST(CAST((SELECT SUM(correct) FROM #grpMeTable WHERE topic LIKE 'Kranken%') AS INT) as nvarchar)
			+ ' von ' + 
			CAST(CAST((SELECT COUNT(correct) FROM #grpMeTable WHERE topic LIKE 'Kranken%')AS INT) as nvarchar) 
		END,
		
		ISNULL(CAST(CAST(ROUND(((SELECT SUM(correct) FROM #grpMeTable WHERE topic IN (SELECT * FROM @SachgebietC))*100)/(SELECT COUNT(correct) FROM #grpMeTable WHERE topic IN (SELECT * FROM @SachgebietC)) ,0) AS INT) AS NVARCHAR) + '%', '-'),
		CASE 
			WHEN (SELECT COUNT(correct) FROM #grpMeTable WHERE topic IN (SELECT * FROM @SachgebietC)) = 0 THEN '-'
			ELSE CAST(CAST((SELECT SUM(correct) FROM #grpMeTable WHERE topic IN (SELECT * FROM @SachgebietC)) AS INT) as nvarchar) + ' von ' + CAST(CAST((SELECT COUNT(correct) FROM #grpMeTable WHERE topic IN (SELECT * FROM @SachgebietC)) AS INT) as nvarchar) 
		END,

		ISNULL(CAST(CAST(ROUND(((SELECT SUM(correct) FROM #grpMeTable WHERE topic ='Rechtliche Grundlagen')*100)/(SELECT COUNT(correct) FROM #grpMeTable WHERE topic ='Rechtliche Grundlagen') ,0) AS INT ) AS NVARCHAR) + '%', '-'),
		CASE 
			WHEN (SELECT COUNT(correct) FROM #grpMeTable WHERE topic ='Rechtliche Grundlagen') = 0 THEN '-'
			ELSE CAST(CAST((SELECT SUM(correct) FROM #grpMeTable WHERE topic ='Rechtliche Grundlagen') AS INT) as nvarchar)
			+ ' von ' + 
			CAST(CAST((SELECT COUNT(correct) FROM #grpMeTable WHERE topic ='Rechtliche Grundlagen') AS INT) as nvarchar) 
		END,
		
		ISNULL(CAST(CAST(ROUND(((SELECT SUM(correct) FROM #grpMeTable WHERE topic IN (SELECT * FROM @SachgebietD))*100)/(SELECT COUNT(correct) FROM #grpMeTable WHERE topic IN (SELECT * FROM @SachgebietD)),0) AS INT) AS NVARCHAR) + '%', '-'),
		CASE 
			WHEN (SELECT COUNT(correct) FROM #grpMeTable WHERE topic IN (SELECT * FROM @SachgebietD)) = 0 THEN '-'
			ELSE CAST(CAST((SELECT SUM(correct) FROM #grpMeTable WHERE topic IN (SELECT * FROM @SachgebietD)) AS INT) as nvarchar) + ' von ' + CAST(CAST((SELECT COUNT(correct) FROM #grpMeTable WHERE topic IN (SELECT * FROM @SachgebietD)) AS INT) as nvarchar) 
		END,		

		ISNULL(CAST(CAST(ROUND(((SELECT SUM(correct) FROM #grpMeTable WHERE topic ='Hausratversicherung')*100)/(SELECT COUNT(correct) FROM #grpMeTable WHERE topic ='Hausratversicherung') ,0) AS INT) AS NVARCHAR) + '%', '-'),
		CASE 
			WHEN (SELECT COUNT(correct) FROM #grpMeTable WHERE topic ='Hausratversicherung') = 0 THEN '-'
			ELSE CAST(CAST((SELECT SUM(correct) FROM #grpMeTable WHERE topic ='Hausratversicherung') AS INT) as nvarchar)
			+ ' von ' + 
			CAST(CAST((SELECT COUNT(correct) FROM #grpMeTable WHERE topic ='Hausratversicherung') AS INT) as nvarchar) 
		END,

		ISNULL(CAST(CAST(ROUND(((SELECT SUM(correct) FROM #grpMeTable WHERE topic LIKE'%ebäudeversicherung')*100)/(SELECT COUNT(correct) FROM #grpMeTable WHERE topic LIKE '%ebäudeversicherung') ,0) AS INT) AS NVARCHAR) + '%', '-'),
		CASE 
			WHEN (SELECT COUNT(correct) FROM #grpMeTable WHERE topic LIKE '%ebäudeversicherung') = 0 THEN '-'
			ELSE CAST(CAST((SELECT SUM(correct) FROM #grpMeTable WHERE topic LIKE '%ebäudeversicherung') AS INT) as nvarchar)
			+ ' von ' + 
			CAST(CAST((SELECT COUNT(correct) FROM #grpMeTable WHERE topic LIKE'%ebäudeversicherung') AS INT) as nvarchar) 
		END,

		ISNULL(CAST(CAST(ROUND(((SELECT SUM(correct) FROM #grpMeTable WHERE topic IN (SELECT * FROM @SachgebietE))*100)/(SELECT COUNT(correct) FROM #grpMeTable WHERE topic IN (SELECT * FROM @SachgebietE)) ,0) AS INT) AS NVARCHAR) + '%', '-'),
		CASE 
			WHEN (SELECT COUNT(correct) FROM #grpMeTable WHERE topic IN (SELECT * FROM @SachgebietE)) = 0 THEN '-'
			ELSE CAST(CAST((SELECT SUM(correct) FROM #grpMeTable WHERE topic IN (SELECT * FROM @SachgebietE)) AS INT) as nvarchar) + ' von ' + CAST(CAST((SELECT COUNT(correct) FROM #grpMeTable WHERE topic IN (SELECT * FROM @SachgebietE)) AS INT) as nvarchar) 
		END,		

		ISNULL(CAST(CAST(ROUND(((SELECT SUM(correct) FROM #grpMeTable WHERE topic ='Haftpflichtversicherung')*100)/(SELECT COUNT(correct) FROM #grpMeTable WHERE topic ='Haftpflichtversicherung') ,0) AS INT) AS NVARCHAR) + '%', '-'),
		CASE 
			WHEN (SELECT COUNT(correct) FROM #grpMeTable WHERE topic ='Haftpflichtversicherung') = 0 THEN '-'
			ELSE CAST(CAST((SELECT SUM(correct) FROM #grpMeTable WHERE topic ='Haftpflichtversicherung') AS INT) as nvarchar)
			+ ' von ' + 
			CAST(CAST((SELECT COUNT(correct) FROM #grpMeTable WHERE topic ='Haftpflichtversicherung') AS INT) as nvarchar) 
		END,

		ISNULL(CAST(CAST(ROUND(((SELECT SUM(correct) FROM #grpMeTable WHERE topic ='Kraftfahrtversicherung')*100)/(SELECT COUNT(correct) FROM #grpMeTable WHERE topic ='Kraftfahrtversicherung') ,0) AS INT) AS NVARCHAR) + '%', '-'),
		CASE 
			WHEN (SELECT COUNT(correct) FROM #grpMeTable WHERE topic ='Kraftfahrtversicherung') = 0 THEN '-'
			ELSE CAST(CAST((SELECT SUM(correct) FROM #grpMeTable WHERE topic ='Kraftfahrtversicherung') AS INT) as nvarchar)
			+ ' von ' + 
			CAST(CAST((SELECT COUNT(correct) FROM #grpMeTable WHERE topic ='Kraftfahrtversicherung') AS INT) as nvarchar) 
		END,

		ISNULL(CAST(CAST(ROUND(((SELECT SUM(correct) FROM #grpMeTable WHERE topic ='Rechtsschutzversicherung')*100)/(SELECT COUNT(correct) FROM #grpMeTable WHERE topic ='Rechtsschutzversicherung') ,0) AS INT) AS NVARCHAR) + '%', '-'),
		CASE 
			WHEN (SELECT COUNT(correct) FROM #grpMeTable WHERE topic ='Rechtsschutzversicherung') = 0 THEN '-'
			ELSE CAST(CAST((SELECT SUM(correct) FROM #grpMeTable WHERE topic ='Rechtsschutzversicherung')AS INT) as nvarchar)
			+ ' von ' + 
			CAST(CAST((SELECT COUNT(correct) FROM #grpMeTable WHERE topic ='Rechtsschutzversicherung') AS INT) as nvarchar) 
		END
	)

	DROP TABLE #grpMeTable


	FETCH NEXT FROM session_cursor INTO @user_id, @test_id,@tg_title, @test_title, @Nachname, @Vorname, @testsession_id
END

DROP TABLE #sachgebiete

CLOSE session_cursor
DEALLOCATE session_cursor
-- Testsessions für betroffende User
SELECT * FROM #tableWithAllResults
ORDER BY Zielgruppe, Name, Vorname, Testname

/**
 * Not needed atm
 *
DECLARE @testName NVARCHAR(MAX)

DECLARE test_cursor CURSOR FAST_FORWARD FOR SELECT test_title FROM #testList ORDER BY test_title
OPEN test_cursor
FETCH NEXT FROM test_cursor INTO @testName
WHILE @@FETCH_STATUS = 0
BEGIN
	SELECT * FROM #tableWithAllResults
	WHERE Testname = @testName
	ORDER BY Zielgruppe, Name, Vorname, Testname

	FETCH NEXT FROM test_cursor INTO @testName
END
CLOSE test_cursor
DEALLOCATE test_cursor
*/
DROP TABLE #testList
</command>
    </Report>
  </Reports>
</ReportsExport>