kreta/Kreta.DataAccess.Migrations/DBScripts/Database/dbo/Stored procedures/sp_GetOsszesNemBejegyzettOra.sql
2024-03-13 00:33:46 +01:00

55 lines
2.4 KiB
Transact-SQL

DROP PROCEDURE IF EXISTS [dbo].[sp_GetOsszesNemBejegyzettOra]
GO
-- =============================================
-- Author: <Kelemen Attila>
-- Create date: <2016. 01. 07.>
-- Description: <Azok a megtartott, vagy elmaradt órák, amik nincsenek bejegyezve a naplóba, havi bontásban, tanáronként>
-- =============================================
CREATE PROCEDURE [dbo].[sp_GetOsszesNemBejegyzettOra]
@tanevID int,
@mindenHeten int
AS
BEGIN
SET NOCOUNT ON;
--Nem naplózott órák
select
MONTH(naptar.C_NAPDATUMA) Honap,
T_FELHASZNALO.C_NYOMTATASINEV TanarNeve,
COUNT(*)
FROM
T_ORARENDIORA
inner join T_FOGLALKOZAS on T_FOGLALKOZAS.ID= T_ORARENDIORA.C_FOGLALKOZASID
inner join T_NAPTARINAP naptar on ((naptar.C_NAPDATUMA BETWEEN T_ORARENDIORA.C_ORAERVENYESSEGKEZDETE AND T_ORARENDIORA.C_ORAERVENYESSEGVEGE)
AND (naptar.C_HETIREND = T_ORARENDIORA.C_HETIREND OR T_ORARENDIORA.C_HETIREND = @mindenHeten)) -- Minden héten
INNER JOIN T_CSENGETESIRENDORA on T_ORARENDIORA.C_CSENGETESIRENDORAID=T_CSENGETESIRENDORA.ID
LEFT JOIN T_TANITASIORA ON T_TANITASIORA.C_ORARENDIORAGROUPID = T_ORARENDIORA.C_ORARENDIORAGROUPID AND T_TANITASIORA.C_DATUM BETWEEN T_ORARENDIORA.C_ORAERVENYESSEGKEZDETE AND T_ORARENDIORA.C_ORAERVENYESSEGVEGE AND T_TANITASIORA.TOROLT='F'
inner join T_FELHASZNALO on T_FOGLALKOZAS.C_TANARID = T_FELHASZNALO.ID
WHERE
T_ORARENDIORA.TOROLT='F'
AND naptar.TOROLT = 'F' AND T_FOGLALKOZAS.TOROLT='F'
AND T_FOGLALKOZAS.TOROLT='F'
AND T_FELHASZNALO.TOROLT='F'
AND GETDATE() >= naptar.C_NAPDATUMA
AND T_TANITASIORA.ID IS NULL
AND T_FOGLALKOZAS.C_TANEVID = @tanevID
group by MONTH(naptar.C_NAPDATUMA), T_FELHASZNALO.C_NYOMTATASINEV
order by case --Hónapok sorrendje
when MONTH(naptar.C_NAPDATUMA) = 9 then 1
when MONTH(naptar.C_NAPDATUMA) = 10 then 2
when MONTH(naptar.C_NAPDATUMA) = 11 then 3
when MONTH(naptar.C_NAPDATUMA) = 12 then 4
when MONTH(naptar.C_NAPDATUMA) = 1 then 5
when MONTH(naptar.C_NAPDATUMA) = 2 then 6
when MONTH(naptar.C_NAPDATUMA) = 3 then 7
when MONTH(naptar.C_NAPDATUMA) = 4 then 8
when MONTH(naptar.C_NAPDATUMA) = 5 then 9
when MONTH(naptar.C_NAPDATUMA) = 6 then 10
when MONTH(naptar.C_NAPDATUMA) = 7 then 11
when MONTH(naptar.C_NAPDATUMA) = 8 then 12
end;
END
GO