SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO DROP PROCEDURE IF EXISTS [dbo].[sp_GetFaliujsagBejegyzesek] GO -- ============================================= -- Description: -- ============================================= CREATE PROCEDURE [dbo].[sp_GetFaliujsagBejegyzesek] @pUserId INT ,@pDate DATE ,@pEsemenyTipusFaliujsagBejegyzes INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from -- interfering with SELECT statements. SET NOCOUNT ON; SELECT DISTINCT te.ID ID ,te.C_KEZDETE Erv_kezd ,te.C_TARGY Cim ,te.C_TARTALOM Szoveg ,f.C_NYOMTATASINEV Bejegyzo ,f.C_PROFILKEP ProfilKep ,munka.ID Munkakor FROM T_TANULOESEMENY te INNER JOIN T_FELHASZNALO f ON te.C_FELJEGYZOID = f.ID AND f.TOROLT = 'F' CROSS APPLY(SELECT TOP 1 ISNULL(d.ID, m.C_MUNKAKORTIPUSA) ID FROM T_MUNKAUGYIADATOK m LEFT JOIN T_DICTIONARYITEMBASE d ON m.C_VEZETOIORASZAMOK = d.ID AND d.C_NAME != 'Nincs' WHERE m.TOROLT = 'F' AND m.C_ALKALMAZOTTID = f.ID ORDER BY m.LASTCHANGED DESC) munka LEFT JOIN T_TANULO_TANULOESEMENY tte ON te.ID = tte.C_TANULOESEMENYID AND tte.C_TANULOID = @pUserId OUTER APPLY (SELECT TOP 1 tcs.ID FROM T_TANULOCSOPORT tcs WHERE tcs.TOROLT = 'F' AND tcs.C_TANULOID = @pUserId AND tcs.C_BELEPESDATUM <= @pDate AND (tcs.C_KILEPESDATUM IS NULL OR tcs.C_KILEPESDATUM >= @pDate) ORDER BY tcs.C_KILEPESDATUM DESC ) csoport LEFT JOIN T_OSZTALYCSOPORT_TANULOESEMENY ote ON te.ID = tte.C_TANULOESEMENYID AND csoport.ID = ote.C_OSZTALYCSOPORTID WHERE te.TOROLT = 'F' AND te.C_KEZDETE <= @pDate AND (te.C_VEGE IS NULL OR te.C_VEGE >= @pDate) AND (te.C_MINDENKINEK = 'T' OR ote.C_OSZTALYCSOPORTID IS NOT NULL OR tte.C_TANULOID IS NOT NULL) AND (te.C_FALIUJSAGMEGJELENES = 'T' AND tte.C_TANULOID IS NOT NULL OR te.C_TIPUS = @pEsemenyTipusFaliujsagBejegyzes) ORDER BY te.C_KEZDETE DESC END GO