60 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			Transact-SQL
		
	
	
	
	
	
			
		
		
	
	
			60 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			Transact-SQL
		
	
	
	
	
	
 | 
						|
-- =============================================
 | 
						|
-- Description:	<Osztályok/csoportok és egyéb osztályok/csoportok>
 | 
						|
-- =============================================
 | 
						|
DROP PROCEDURE IF EXISTS [dbo].[sp_GetAllOsztalyCsoport]
 | 
						|
GO
 | 
						|
 | 
						|
CREATE PROCEDURE [dbo].[sp_GetAllOsztalyCsoport]
 | 
						|
	@pFeladatKategoriaId		INT
 | 
						|
AS
 | 
						|
BEGIN
 | 
						|
 | 
						|
	-- SET NOCOUNT ON added to prevent extra result sets from
 | 
						|
	-- interfering with SELECT statements.
 | 
						|
	SET NOCOUNT ON;
 | 
						|
 | 
						|
	SELECT 
 | 
						|
	 	 CASE WHEN osztalyCsoport.C_NEV NOT LIKE '%[^0-9]%' THEN CAST(LEFT(osztalyCsoport.C_NEV,9) AS INT) ELSE 2147483647 END AS NumberOrder
 | 
						|
		,CASE WHEN LEFT(osztalyCsoport.C_NEV, 1) BETWEEN '0' AND '9' AND osztalyCsoport.C_NEV LIKE '%[^0-9]%' THEN CAST(LEFT(SUBSTRING(osztalyCsoport.C_NEV, 1, PATINDEX('%[^0-9]%', osztalyCsoport.C_NEV) - 1),9) AS INT) ELSE 2147483647 END AS NumberAndTextOrder
 | 
						|
		,osztalyCsoport.ID AS ID
 | 
						|
		,osztalyCsoport.C_NEV AS Nev
 | 
						|
		,'1' AS Tipus
 | 
						|
		,NULL AS CsoportTipusa
 | 
						|
		,osztalyCsoport.C_EVFOLYAMTIPUSA AS Evfolyam
 | 
						|
		,0 AS OsztalyCsoportOrder
 | 
						|
		,feladatellatasiHely.C_OKTATASINEVELESIFELADATTIPUS AS EllatottFeladatTipusId
 | 
						|
	FROM 
 | 
						|
		T_OSZTALY osztaly
 | 
						|
		INNER JOIN T_OSZTALYCSOPORT osztalyCsoport 
 | 
						|
			ON osztaly.ID = osztalyCsoport.ID AND (osztalyCsoport.C_FELADATKATEGORIAID = @pFeladatKategoriaId OR @pFeladatKategoriaId IS NULL)
 | 
						|
		INNER JOIN T_FELADATELLATASIHELY feladatellatasiHely
 | 
						|
			ON osztalyCsoport.C_FELADATELLATASIHELYID = feladatellatasiHely.ID
 | 
						|
	WHERE 
 | 
						|
		osztalyCsoport.TOROLT = 'F'
 | 
						|
			
 | 
						|
	UNION ALL
 | 
						|
			
 | 
						|
	SELECT
 | 
						|
	   CASE WHEN osztalyCsoport.C_NEV NOT LIKE '%[^0-9]%' THEN CAST(LEFT(osztalyCsoport.C_NEV,9) AS INT) ELSE 2147483647 END AS NumberOrder
 | 
						|
		,CASE WHEN LEFT(osztalyCsoport.C_NEV, 1) BETWEEN '0' AND '9' AND osztalyCsoport.C_NEV LIKE '%[^0-9]%' THEN CAST(LEFT(SUBSTRING(osztalyCsoport.C_NEV, 1, PATINDEX('%[^0-9]%', osztalyCsoport.C_NEV) - 1),9) AS INT) ELSE 2147483647 END AS NumberAndTextOrder
 | 
						|
		,osztalyCsoport.ID AS ID
 | 
						|
		,osztalyCsoport.C_NEV AS Nev
 | 
						|
		,'1' AS Tipus
 | 
						|
		,csoport.C_TIPUSA AS CsoportTipusa
 | 
						|
		,osztalyCsoport.C_EVFOLYAMTIPUSA AS Evfolyam
 | 
						|
		,1 AS OsztalyCsoportOrder
 | 
						|
		,feladatellatasiHely.C_OKTATASINEVELESIFELADATTIPUS AS EllatottFeladatTipusId
 | 
						|
	FROM 
 | 
						|
		T_CSOPORT csoport
 | 
						|
		INNER JOIN T_OSZTALYCSOPORT osztalyCsoport
 | 
						|
			ON csoport.ID = osztalyCsoport.ID AND (osztalyCsoport.C_FELADATKATEGORIAID = @pFeladatKategoriaId OR @pFeladatKategoriaId IS NULL)
 | 
						|
		INNER JOIN T_FELADATELLATASIHELY feladatellatasiHely
 | 
						|
			ON osztalyCsoport.C_FELADATELLATASIHELYID = feladatellatasiHely.ID
 | 
						|
	WHERE 
 | 
						|
		osztalyCsoport.TOROLT = 'F'
 | 
						|
	ORDER BY 
 | 
						|
		OsztalyCsoportOrder, NumberOrder ASC, NumberAndTextOrder ASC, osztalyCsoport.C_NEV ASC
 | 
						|
 | 
						|
END
 | 
						|
GO |