GO /****** Object: StoredProcedure [dbo].[sp_GetTermek] Script Date: 2016.02.19. 10:53:07 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF OBJECT_ID('[dbo].[sp_GetTermek]') IS NOT NULL BEGIN DROP PROCEDURE [dbo].[sp_GetTermek] END GO -- ============================================= -- Author: Hoffmann Zsolt -- Create date: 2016-02-19 -- Description: Termek lekérdezés -- ============================================= CREATE PROCEDURE [dbo].[sp_GetTermek] @FoglalkozasID int, @OsztCsopID int, @TanevID int AS BEGIN SET NOCOUNT ON; WITH q (ID,Nev,Tipus) AS ( SELECT terem.ID, terem.C_NEV Nev, '1' Tipus FROM T_TEREM_OSSZES terem LEFT JOIN T_TEREM_FOGLALKOZAS ON T_TEREM_FOGLALKOZAS.C_TEREMID = terem.ID LEFT JOIN T_FOGLALKOZAS_OSSZES foglalkozas ON foglalkozas.ID = T_TEREM_FOGLALKOZAS.C_FOGLALKOZASID WHERE terem.TOROLT = 'F' AND terem.C_TANEVID = @TanevID AND foglalkozas.TOROLT = 'F' AND foglalkozas.ID = @FoglalkozasID EXCEPT ( SELECT terem.ID, terem.C_NEV Nev, '1' Tipus FROM T_TEREM_OSSZES terem INNER JOIN (SELECT C_TEREMID FROM T_OSZTALYCSOPORT_OSSZES WHERE TOROLT = 'F' AND ID = @OsztCsopID) ocs ON ocs.C_TEREMID = terem.ID WHERE terem.TOROLT = 'F' AND terem.C_TANEVID = @TanevID) UNION all SELECT terem.ID, terem.C_NEV Nev, '2' Tipus FROM T_TEREM_OSSZES terem INNER JOIN (SELECT C_TEREMID FROM T_OSZTALYCSOPORT_OSSZES WHERE TOROLT = 'F' AND ID = @OsztCsopID) ocs ON ocs.C_TEREMID = terem.ID WHERE terem.TOROLT = 'F' AND terem.C_TANEVID = @TanevID ) SELECT ID,Nev,Tipus FROM q UNION SELECT terem.ID, terem.C_NEV Nev, '3' Tipus FROM T_TEREM_OSSZES terem WHERE terem.TOROLT = 'F' AND terem.C_TANEVID = @TanevID AND terem.ID NOT IN (SELECT ID FROM q) END