kreta/Kreta.DataAccess.Migrations/Scripts/Archive/20170327110702_Init/Stored procedures/sp_GetErtekelesReszletek.sql
2024-03-13 00:33:46 +01:00

111 lines
No EOL
2.9 KiB
Transact-SQL

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
IF OBJECT_ID('[sp_GetErtekelesReszletek]') IS NOT NULL
BEGIN
DROP PROCEDURE [sp_GetErtekelesReszletek]
END
GO
-- =============================================
-- Description: <Előszedjük a tanuló értékeléseit részletesen tantárgy szerint>
-- =============================================
CREATE PROCEDURE [sp_GetErtekelesReszletek]
@pIntezmenyId INT,
@pTanevId INT,
@pTanuloId INT,
@pTantargyId INT,
@pToroltElemek CHAR = 'F',
@pTanarId INT
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
SELECT
TanuloErtekeles.ID
,TanuloErtekeles.C_ERTEKELESDATUM AS ErtekelesDatuma
,TanuloErtekeles.C_ERTEKELESTIPUSA AS ErtekelesTipusa
,TanuloErtekeles.C_ERTEKELESSZOVEG AS ErtekelesSzovege
,TanuloErtekeles.C_OSZTALYZAT AS Osztalyzat
,TanuloErtekeles.C_TANORAID TanoraID
,OsztalyzatErtekeles.C_ERTEKELESMODJA AS ErtekelesModja
,OsztalyzatErtekeles.C_SZAZALEK AS Szazalek
,OsztalyzatErtekeles.C_TEMA AS Tema
,TanuloErtekeles.TOROLT AS Torolt
,TanuloCsoport.C_TANULOID AS TanuloId
,Felhasznalo.C_NYOMTATASINEV AS Ertekelo
,CASE
WHEN TanuloErtekeles.CREATOR = @pTanarId
THEN 'T'
ELSE 'F'
END Modosithato
FROM(
SELECT DISTINCT
[C_TANULOID]
FROM
[T_TANULOCSOPORT]
WHERE
[TOROLT] = 'F'
AND [C_TANULOID] = @pTanuloId
AND [C_BELEPESDATUM] < GETDATE()
AND ([C_KILEPESDATUM] IS NULL OR [C_KILEPESDATUM] >= GETDATE())
AND [C_INTEZMENYID] = @pIntezmenyId
AND [C_TANEVID] = @pTanevId
) AS TanuloCsoport
INNER JOIN (
SELECT
[ID]
,[C_ERTEKELESDATUM]
,[C_ERTEKELESTIPUSA]
,[C_ERTEKELESSZOVEG]
,[C_OSZTALYZAT]
,[C_TANULOID]
,[C_ERTEKELOID]
,[C_TANORAID]
,[TOROLT]
,[CREATOR]
FROM
[T_TANULOERTEKELES_OSSZES]
WHERE
[C_TANTARGYID] = @pTantargyId
--Ha a törölt flag True, a törölt elemeket is visszaadjuk
AND [TOROLT] = IIF(@pToroltElemek = 'T', [TOROLT], 'F')
AND [C_INTEZMENYID] = @pIntezmenyId
AND [C_TANEVID] = @pTanevId
) AS TanuloErtekeles
ON TanuloCsoport.C_TANULOID = TanuloErtekeles.C_TANULOID
INNER JOIN (
SELECT
[ID]
,[C_ERTEKELESMODJA]
,[C_SZAZALEK]
,[C_TEMA]
,[TOROLT]
FROM
[T_OSZTALYZATERTEKELES_OSSZES]
WHERE
--Ha a törölt flag True, a törölt elemeket is visszaadjuk
[TOROLT] = IIF(@pToroltElemek = 'T', [TOROLT], 'F')
AND [C_ALINTEZMENYID] = @pIntezmenyId
AND [C_ALTANEVID] = @pTanevId
) AS OsztalyzatErtekeles
ON OsztalyzatErtekeles.ID = TanuloErtekeles.ID
INNER JOIN (
SELECT
[ID]
,[C_NYOMTATASINEV]
FROM
[T_FELHASZNALO]
WHERE
[TOROLT] = 'F'
AND [C_INTEZMENYID] = @pIntezmenyId
AND [C_TANEVID] = @pTanevId
) AS Felhasznalo
ON Felhasznalo.ID = TanuloErtekeles.C_ERTEKELOID
END