kreta/Kreta.DataAccess.Migrations/DBScripts/Database/dbo/Stored procedures/sp_GetErettsegiKerdesek.sql
2024-03-13 00:33:46 +01:00

154 lines
4.9 KiB
Transact-SQL

DROP PROCEDURE IF EXISTS [dbo].[sp_GetErettsegiKerdesek]
GO
CREATE PROCEDURE [dbo].[sp_GetErettsegiKerdesek]
@tanuloId int,
@kerdesSzam int,
@erettsegiTantargyId int,
@erettsegiSzintId int
AS
BEGIN
SET NOCOUNT ON;
DECLARE @SorokSzama INT
DECLARE @TempErettsegi TABLE
(
Id int,
Cim nvarchar(1000),
ErettsegiSzintId int,
ErettsegiTantargyId int,
HelyesValasz nvarchar(1000),
Kategoria nvarchar(10),
Kep nvarchar(max),
Kerdes nvarchar(1000),
Szoveg nvarchar(2000),
Tema nvarchar(1000),
ValaszB nvarchar(1000),
ValaszC nvarchar(1000),
ValaszD nvarchar(1000),
ValaszE nvarchar(1000),
ValaszF nvarchar(1000),
ValaszSzoveges nvarchar(1000)
)
IF (@kerdesSzam = 0)
BEGIN
SET @kerdesSzam = 50000
END
-- Új kérdesek betöltése
INSERT @TempErettsegi (
Id, Cim, ErettsegiSzintId, ErettsegiTantargyId,
HelyesValasz, Kategoria, Kep, Kerdes, Szoveg, Tema,
ValaszB, ValaszC, ValaszD, ValaszE, ValaszF, ValaszSzoveges)
SELECT TOP (@kerdesSzam)
[ID] as Id
,[C_CIM] as Cim
,[C_ERETTSEGISZINTID] as ErettsegiSzintId
,[C_ERETTSEGITANTARGYID] as ErettsegiTantargyId
,[C_HELYESVALASZ] as HelyesValasz
,[C_KATEGORIA] as Kategoria
,[C_KEP] as Kep
,[C_KERDES] as Kerdes
,[C_SZOVEG] as Szoveg
,[C_TEMA] as Tema
,[C_VALASZB] as ValaszB
,[C_VALASZC] as ValaszC
,[C_VALASZD] as ValaszD
,[C_VALASZE] as ValaszE
,[C_VALASZF] as ValaszF
,[C_VALASZSZOVEGES] as ValaszSzoveges
FROM T_ERETTSEGIKERDES ek
WHERE ek.C_ERETTSEGISZINTID = @erettsegiSzintId AND
ek.C_ERETTSEGITANTARGYID = @erettsegiTantargyId AND
NOT EXISTS (SELECT 1 FROM T_ERETTSEGIVALASZ tv WHERE tv.C_TANULOID = @tanuloId AND tv.C_ERETTSEGIKERDESID = ek.ID)
ORDER BY NEWID()
SELECT @SorokSzama = COUNT(1) FROM @TempErettsegi
-- Utoljára hibás kérdések betöltése
IF (@SorokSzama < @kerdesSzam)
BEGIN
INSERT @TempErettsegi (
Id, Cim, ErettsegiSzintId, ErettsegiTantargyId,
HelyesValasz, Kategoria, Kep, Kerdes, Szoveg, Tema,
ValaszB, ValaszC, ValaszD, ValaszE, ValaszF, ValaszSzoveges)
SELECT TOP (@kerdesSzam - @SorokSzama)
[ID] as Id
,[C_CIM] as Cim
,[C_ERETTSEGISZINTID] as ErettsegiSzintId
,[C_ERETTSEGITANTARGYID] as ErettsegiTantargyId
,[C_HELYESVALASZ] as HelyesValasz
,[C_KATEGORIA] as Kategoria
,[C_KEP] as Kep
,[C_KERDES] as Kerdes
,[C_SZOVEG] as Szoveg
,[C_TEMA] as Tema
,[C_VALASZB] as ValaszB
,[C_VALASZC] as ValaszC
,[C_VALASZD] as ValaszD
,[C_VALASZE] as ValaszE
,[C_VALASZF] as ValaszF
,[C_VALASZSZOVEGES] as ValaszSzoveges
FROM T_ERETTSEGIKERDES ek
WHERE ek.C_ERETTSEGISZINTID = @erettsegiSzintId AND
ek.C_ERETTSEGITANTARGYID = @erettsegiTantargyId AND
NOT EXISTS (SELECT 1 FROM @TempErettsegi te WHERE te.Id = ek.ID) AND
'F' = (SELECT TOP 1 C_HELYES FROM T_ERETTSEGIVALASZ tv WHERE tv.C_TANULOID = @tanuloId AND tv.C_ERETTSEGIKERDESID = ek.ID ORDER BY C_DATUM DESC)
ORDER BY NEWID()
END
SELECT @SorokSzama = COUNT(1) FROM @TempErettsegi
-- Maradék elemek véletlenszerűen
IF (@SorokSzama < @kerdesSzam)
BEGIN
INSERT @TempErettsegi (
Id, Cim, ErettsegiSzintId, ErettsegiTantargyId,
HelyesValasz, Kategoria, Kep, Kerdes, Szoveg, Tema,
ValaszB, ValaszC, ValaszD, ValaszE, ValaszF, ValaszSzoveges)
SELECT TOP (@kerdesSzam - @SorokSzama)
[ID] as Id
,[C_CIM] as Cim
,[C_ERETTSEGISZINTID] as ErettsegiSzintId
,[C_ERETTSEGITANTARGYID] as ErettsegiTantargyId
,[C_HELYESVALASZ] as HelyesValasz
,[C_KATEGORIA] as Kategoria
,[C_KEP] as Kep
,[C_KERDES] as Kerdes
,[C_SZOVEG] as Szoveg
,[C_TEMA] as Tema
,[C_VALASZB] as ValaszB
,[C_VALASZC] as ValaszC
,[C_VALASZD] as ValaszD
,[C_VALASZE] as ValaszE
,[C_VALASZF] as ValaszF
,[C_VALASZSZOVEGES] as ValaszSzoveges
FROM T_ERETTSEGIKERDES ek
WHERE ek.C_ERETTSEGISZINTID = @erettsegiSzintId AND
ek.C_ERETTSEGITANTARGYID = @erettsegiTantargyId AND
NOT EXISTS (SELECT 1 FROM @TempErettsegi te WHERE te.Id = ek.ID)
ORDER BY NEWID()
END
SELECT TOP (@kerdesSzam)
Id as Id
,Cim as Cim
,ErettsegiSzintId as ErettsegiSzintId
,ErettsegiTantargyId as ErettsegiTantargyId
,HelyesValasz as HelyesValasz
,Kategoria as Kategoria
,Kep as Kep
,Kerdes as Kerdes
,Szoveg as Szoveg
,Tema as Tema
,ValaszB as ValaszB
,ValaszC as ValaszC
,ValaszD as ValaszD
,ValaszE as ValaszE
,ValaszF as ValaszF
,ValaszSzoveges as ValaszSzoveges
FROM @TempErettsegi
END
GO