SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO DROP PROCEDURE IF EXISTS sp_GetOsztalyokEvesOraszama GO CREATE PROCEDURE sp_GetOsztalyokEvesOraszama @tanevID int, @tanitasiHetekSzamaVegzos INT = 32, @tanitasiHetekSzamaNemVegzos INT = 36, @isAltantargyBeszamitasa BIT AS BEGIN declare @osztalyok TABLE ( OsztalyId INT ,OsztalyNev NVARCHAR(255) ) INSERT INTO @osztalyok SELECT * FROM fnGetDokumentumOsztalyokTanevenkent(@tanevID) ORDER BY OsztalyId ASC SELECT * FROM @osztalyok DECLARE kurzor CURSOR FOR SELECT OsztalyId, OsztalyNev FROM @osztalyok LEFT JOIN ( SELECT COUNT(T_TANULOCSOPORT_OSSZES.C_TANULOID) tanuloCount, T_TANULOCSOPORT_OSSZES.C_OSZTALYCSOPORTID FROM T_TANULOCSOPORT_OSSZES INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.ID = T_TANULOCSOPORT_OSSZES.C_OSZTALYCSOPORTID AND ocs.TOROLT = 'F' WHERE T_TANULOCSOPORT_OSSZES.TOROLT = 'F' AND T_TANULOCSOPORT_OSSZES.C_TANEVID = @tanevID GROUP BY T_TANULOCSOPORT_OSSZES.C_OSZTALYCSOPORTID ) tanuloSzam ON tanuloSzam.C_OSZTALYCSOPORTID = OsztalyId WHERE tanuloCount > 0 ORDER BY OsztalyId DECLARE @OsztalyId int, @OsztalyNev nvarchar(255) OPEN kurzor FETCH NEXT FROM kurzor INTO @OsztalyId, @OsztalyNev WHILE @@FETCH_STATUS = 0 BEGIN SELECT DISTINCT tanulo.C_NYOMTATASINEV TanuloNev ,tantargy.C_NEV TantargyNev ,oraszamok.Oraszam EvesOraszam ,@OsztalyNev AS OsztalyNev ,@OsztalyId AS OsztalyId FROM fnGetDokumentumTanulokEvesOraszamaiOsztalyonkent(@tanevID, @OsztalyId, @tanitasiHetekSzamaVegzos, @tanitasiHetekSzamaNemVegzos, @isAltantargyBeszamitasa) oraszamok INNER JOIN T_FELHASZNALO_OSSZES tanulo ON tanulo.ID = oraszamok.TanuloId INNER JOIN T_TANTARGY_OSSZES tantargy ON tantargy.ID = oraszamok.TantargyID FETCH NEXT FROM kurzor INTO @OsztalyId, @OsztalyNev END CLOSE kurzor DEALLOCATE kurzor END GO