154 lines
4.9 KiB
Transact-SQL
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
|