USE [Vertragsverwaltung_20160404] GO /****** Object: StoredProcedure [dbo].[sp_rpt_ITKoordinatoren] Script Date: 02.12.2016 09:08:53 ******/ DROP PROCEDURE [dbo].[sp_rpt_ITKoordinatoren] GO /****** Object: StoredProcedure [dbo].[sp_rpt_ITKoordinatoren] Script Date: 02.12.2016 09:08:55 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER OFF GO -- ============================================= -- Author: -- Create date: -- Description: -- ============================================= CREATE PROCEDURE [dbo].[sp_rpt_ITKoordinatoren] @sqlwhere varchar(1024) AS BEGIN CREATE TABLE #tmpd( [Reihenfolge] [int] null, [Gruppierungsbegriff] [varchar](50) NULL, [Bereich] [varchar](50) NULL, [Sortierung] [int] NULL, [ITK] [varchar](50) NULL, [ITK_Tel] [varchar](50) NULL, [ITK_Mail] [varchar](50) NULL, [ITK1] [varchar](50) NULL, [ITK1_Tel] [varchar](50) NULL, [ITK1_Mail] [varchar](50) NULL, [ITK2] [varchar](50) NULL, [ITK2_Tel] [varchar](50) NULL, [ITK2_Mail] [varchar](50) NULL ) ON [DEFAULT] SET NOCOUNT ON; declare @gnr int declare @gbeg varchar(50) declare @r int declare @bnr int declare @bbe varchar (50) declare @bs int declare @bcnt int declare @itk varchar(50) declare @itk_tel varchar(50) declare @itk_mail varchar(50) declare @itk1 varchar(50) declare @itk1_tel varchar(50) declare @itk1_mail varchar(50) declare @itk2 varchar(50) declare @itk2_tel varchar(50) declare @itk2_mail varchar(50) declare xc cursor for SELECT dbo.GremiumGruppierung.GremiumGruppierungnr ,dbo.GremiumGruppierung.Gruppierungsbegriff, dbo.GremiumGruppierung.Reihenfolge FROM dbo.Gremium INNER JOIN dbo.GremiumGruppierung ON dbo.Gremium.GremiumNr = dbo.GremiumGruppierung.GremiumNr WHERE (dbo.GremiumGruppierung.Aktiv = 1) AND (dbo.Gremium.Aktiv = 1) AND (dbo.Gremium.GremiumNr = 2) ORDER BY dbo.GremiumGruppierung.Reihenfolge open xc fetch next from xc into @gnr, @gbeg, @r while @@fetch_status=0 begin set @bcnt=0 declare x1 cursor for select gremiumbereichnr, bereich, sortierung from gremiumbereich where gremiumgruppierungnr=@gnr and aktiv=1 open x1 fetch next from x1 into @bnr, @bbe, @bs while @@fetch_status=0 begin set @bcnt=@bcnt+1 --IT-Koordinator SELECT @itk=dbo.Person.Name + ' ' + dbo.Person.Vorname, @itk_tel=dbo.Person.Telefon,@itk_mail=dbo.Person.email FROM dbo.GremiumPerson INNER JOIN dbo.Person ON dbo.GremiumPerson.PersonNr = dbo.Person.PersonNr WHERE dbo.GremiumPerson.GremiumBereichNr = @bnr AND dbo.GremiumPerson.RolleNr = 9 and dbo.gremiumperson.aktiv=1 if @@rowcount=0 begin set @itk='' set @itk_tel='' set @itk_mail='' end --STV1 SELECT @itk1=dbo.Person.Name + ' ' + dbo.Person.Vorname, @itk1_tel=dbo.Person.Telefon,@itk1_mail=dbo.Person.email FROM dbo.GremiumPerson INNER JOIN dbo.Person ON dbo.GremiumPerson.PersonNr = dbo.Person.PersonNr WHERE dbo.GremiumPerson.GremiumBereichNr = @bnr AND dbo.GremiumPerson.RolleNr = 10 and dbo.gremiumperson.aktiv=1 if @@rowcount=0 begin set @itk1='' set @itk1_tel='' set @itk1_mail='' end --STV2 SELECT @itk2=dbo.Person.Name + ' ' + dbo.Person.Vorname, @itk2_tel=dbo.Person.Telefon,@itk2_mail=dbo.Person.email FROM dbo.GremiumPerson INNER JOIN dbo.Person ON dbo.GremiumPerson.PersonNr = dbo.Person.PersonNr WHERE dbo.GremiumPerson.GremiumBereichNr = @bnr AND dbo.GremiumPerson.RolleNr = 11 and dbo.gremiumperson.aktiv=1 if @@rowcount=0 begin set @itk2='' set @itk2_tel='' set @itk2_mail='' end insert #tmpd(reihenfolge, gruppierungsbegriff, bereich, sortierung,itk, itk_tel, itk_mail, itk1, itk1_tel, itk1_mail, itk2, itk2_tel, itk2_mail) values (@r, @gbeg, @bbe, @bs, @itk, @itk_tel, @itk_mail, @itk1, @itk1_tel, @itk1_mail, @itk2, @itk2_tel, @itk2_mail) fetch next from x1 into @bnr, @bbe, @bs end close x1 deallocate x1 if @bcnt=0 begin insert #tmpd(reihenfolge, gruppierungsbegriff, bereich, sortierung,itk, itk_tel, itk_mail, itk1, itk1_tel, itk1_mail, itk2, itk2_tel, itk2_mail) values (@r, @gbeg, '',0,'','','','','','','','','') end fetch next from xc into @gnr, @gbeg, @r end close xc deallocate xc select * from #tmpd order by reihenfolge, sortierung drop table #tmpd END GO