kreta/Kreta.DataAccess.Migrations/Scripts/Archive/20181203113155_Zoli_ErtekelesRefakt4/uspValidateTanuloListTanuloMenessegToErtekeles.sql
2024-03-13 00:33:46 +01:00

50 lines
1.5 KiB
Transact-SQL

-- =============================================
-- Description: <Megvizsgáljuk, hogy van-e a tanulóknak az adott időpontra tanuló mentessége>
-- =============================================
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
DROP PROCEDURE IF EXISTS [dbo].[uspValidateTanuloListTanuloMenessegToErtekeles]
GO
CREATE PROCEDURE [dbo].[uspValidateTanuloListTanuloMenessegToErtekeles]
@pTanuloIdList XML
,@pTantargyId INT
,@pErtekelesDatum DATE
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from interfering with SELECT statements.
SET NOCOUNT ON;
DECLARE @tempTanuloIdList TABLE (tanuloId INT)
INSERT INTO @tempTanuloIdList
SELECT DISTINCT tanuloId = tanuloId.value('(.)[1]', 'INT')
FROM @pTanuloIdList.nodes('tanuloIdList/tanuloId') as tanuloIdList(tanuloId)
SELECT
felhasznalo.ID ID
,felhasznalo.C_NYOMTATASINEV Nev
,tanuloMentesseg.C_ERTEKELESMENTESITES ErtkelesMentesseg
,tanuloMentesseg.C_SZOVEGESENERTEKELHETO SzovegesenErtekelheto
FROM
T_FELHASZNALO felhasznalo
LEFT JOIN
T_TANULOMENTESSEG tanuloMentesseg ON
tanuloMentesseg.C_TANULOID = felhasznalo.ID
AND tanuloMentesseg.TOROLT = 'F'
AND tanuloMentesseg.C_TANTARGYID = @pTantargyId
AND (tanuloMentesseg.C_KEZDETE IS NULL OR tanuloMentesseg.C_KEZDETE <= @pErtekelesDatum)
AND (tanuloMentesseg.C_VEGE IS NULL OR tanuloMentesseg.C_VEGE >= @pErtekelesDatum)
WHERE
felhasznalo.ID IN (SELECT tanuloId FROM @tempTanuloIdList)
AND felhasznalo.TOROLT = 'F'
END
GO