USE [Vertragsverwaltung_20160404] GO /****** Object: StoredProcedure [dbo].[sp_rpt_applikationslisten] Script Date: 02.12.2016 09:08:53 ******/ DROP PROCEDURE [dbo].[sp_rpt_applikationslisten] GO /****** Object: StoredProcedure [dbo].[sp_rpt_applikationslisten] 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_applikationslisten] @sqlwhere varchar(1024) AS BEGIN SET NOCOUNT ON; declare @xsql varchar(4096) set @xsql='SELECT DISTINCT' set @xsql=@xsql+' TOP (100) PERCENT dbo.Applikation.Bezeichnung AS Applikation, dbo.Person.Name, dbo.Person.Vorname, SUBSTRING(dbo.Person.Telefon, LEN(dbo.Person.Telefon)' set @xsql=@xsql+' - 4, 5) AS telefon, dbo.Person.EMail, dbo.Kontakttyp.Bezeichnung AS Kontakttyp, dbo.Kontakttyp.KontakttypNr, dbo.ApplikationKategorie.Bezeichnung AS Kategorie,' set @xsql=@xsql+' dbo.GremiumGruppierung.Gruppierungsbegriff AS Verantwortung, GremiumGruppierung_1.Gruppierungsbegriff AS Marktbereich,' set @xsql=@xsql+' dbo.GremiumBereich.Beschreibung AS RFCBoard' set @xsql=@xsql+' FROM dbo.ApplikationKontakt INNER JOIN' set @xsql=@xsql+' dbo.Kontakttyp ON dbo.ApplikationKontakt.KontakttypNr = dbo.Kontakttyp.KontakttypNr INNER JOIN' set @xsql=@xsql+' dbo.Person ON dbo.ApplikationKontakt.PersonNr = dbo.Person.PersonNr INNER JOIN' set @xsql=@xsql+' dbo.Applikation ON dbo.ApplikationKontakt.Applikationnr = dbo.Applikation.ApplikationNr INNER JOIN' set @xsql=@xsql+' dbo.ApplikationKategorie ON dbo.Applikation.ApplikationKategorieNr = dbo.ApplikationKategorie.ApplikationKategorieNr INNER JOIN' set @xsql=@xsql+' dbo.GremiumGruppierung ON dbo.Applikation.ApplikationVerantwortungNr = dbo.GremiumGruppierung.GremiumGruppierungNr INNER JOIN' set @xsql=@xsql+' dbo.GremiumGruppierung AS GremiumGruppierung_1 ON dbo.Applikation.Marktbereichnr = GremiumGruppierung_1.GremiumGruppierungNr LEFT OUTER JOIN' set @xsql=@xsql+' dbo.GremiumBereich ON dbo.Applikation.RfcBoardNr = dbo.GremiumBereich.GremiumBereichNr' set @xsql=@xsql+' WHERE (dbo.Applikation.Aktiv = 1) AND (dbo.Person.Aktiv = 1) AND (dbo.ApplikationKontakt.Aktiv = 1) AND (dbo.Kontakttyp.KontakttypNr = 1 OR' set @xsql=@xsql+' dbo.Kontakttyp.KontakttypNr = 2) AND (dbo.GremiumGruppierung.GremiumNr = 3) AND (GremiumGruppierung_1.GremiumNr = 4) AND' set @xsql=@xsql+' (dbo.GremiumBereich.GremiumGruppierungNr = 1)' set @xsql='SELECT DISTINCT ' set @xsql=@xsql+' TOP (100) PERCENT dbo.Applikation.Bezeichnung AS Applikation, dbo.Person.Name, dbo.Person.Vorname, SUBSTRING(dbo.Person.Telefon, LEN(dbo.Person.Telefon) ' set @xsql=@xsql+'- 4, 5) AS telefon, dbo.Person.EMail, dbo.Kontakttyp.Bezeichnung AS Kontakttyp, dbo.Kontakttyp.KontakttypNr, dbo.ApplikationKategorie.Bezeichnung AS Kategorie, ' set @xsql=@xsql+' dbo.GremiumGruppierung.Gruppierungsbegriff AS Verantwortung, dbo.GremiumBereich.Bereich AS Team, ' set @xsql=@xsql+' GremiumGruppierung_2.Gruppierungsbegriff AS Fachliche_Verantwortung, GremiumGruppierung_1.Gruppierungsbegriff AS Marktbereich, ' set @xsql=@xsql+' GremiumBereich_1.Beschreibung AS RFCBoard' set @xsql=@xsql+' FROM dbo.ApplikationKontakt INNER JOIN' set @xsql=@xsql+' dbo.Kontakttyp ON dbo.ApplikationKontakt.KontakttypNr = dbo.Kontakttyp.KontakttypNr INNER JOIN' set @xsql=@xsql+' dbo.Person ON dbo.ApplikationKontakt.PersonNr = dbo.Person.PersonNr INNER JOIN' set @xsql=@xsql+' dbo.Applikation ON dbo.ApplikationKontakt.Applikationnr = dbo.Applikation.ApplikationNr INNER JOIN' set @xsql=@xsql+' dbo.ApplikationKategorie ON dbo.Applikation.ApplikationKategorieNr = dbo.ApplikationKategorie.ApplikationKategorieNr LEFT OUTER JOIN' set @xsql=@xsql+' dbo.GremiumGruppierung AS GremiumGruppierung_1 ON dbo.Applikation.Marktbereichnr = GremiumGruppierung_1.GremiumGruppierungNr LEFT OUTER JOIN' set @xsql=@xsql+' dbo.GremiumGruppierung ON dbo.Applikation.ApplikationVerantwortungNr = dbo.GremiumGruppierung.GremiumGruppierungNr LEFT OUTER JOIN' set @xsql=@xsql+' dbo.GremiumBereich ON dbo.Applikation.ApplikationTeamnr = dbo.GremiumBereich.GremiumBereichNr LEFT OUTER JOIN' set @xsql=@xsql+' dbo.GremiumBereich AS GremiumBereich_1 ON dbo.Applikation.RfcBoardNr = GremiumBereich_1.GremiumBereichNr LEFT OUTER JOIN' set @xsql=@xsql+' dbo.GremiumGruppierung AS GremiumGruppierung_2 ON dbo.Applikation.FachlicheOe = GremiumGruppierung_2.GremiumGruppierungNr' set @xsql=@xsql+' WHERE (dbo.Applikation.Aktiv = 1) AND (dbo.Person.Aktiv = 1) AND (dbo.ApplikationKontakt.Aktiv = 1) AND (dbo.Kontakttyp.KontakttypNr = 1 OR' set @xsql=@xsql+' dbo.Kontakttyp.KontakttypNr = 2) AND (GremiumGruppierung_1.GremiumNr = 4) AND (GremiumBereich_1.GremiumGruppierungNr = 1) AND ' set @xsql=@xsql+' (dbo.GremiumGruppierung.GremiumNr = 3)' set @xsql='SELECT DISTINCT ' set @xsql=@xsql+' TOP (100) PERCENT dbo.Applikation.Bezeichnung AS Applikation, dbo.Person.Name, dbo.Person.Vorname, SUBSTRING(dbo.Person.Telefon, ' set @xsql=@xsql+' LEN(dbo.Person.Telefon) - 4, 5) AS telefon, dbo.Person.EMail, dbo.Kontakttyp.Bezeichnung AS Kontakttyp, dbo.Kontakttyp.KontakttypNr, ' set @xsql=@xsql+' dbo.ApplikationKategorie.Bezeichnung AS Kategorie, dbo.GremiumGruppierung.Gruppierungsbegriff AS Verantwortung, dbo.GremiumBereich.Bereich AS Team, ' set @xsql=@xsql+' GremiumGruppierung_2.Gruppierungsbegriff AS Fachliche_Verantwortung, GremiumBereich_1.Beschreibung AS RFCBoard' set @xsql=@xsql+' FROM dbo.ApplikationKontakt INNER JOIN' set @xsql=@xsql+' dbo.Kontakttyp ON dbo.ApplikationKontakt.KontakttypNr = dbo.Kontakttyp.KontakttypNr INNER JOIN' set @xsql=@xsql+' dbo.Person ON dbo.ApplikationKontakt.PersonNr = dbo.Person.PersonNr INNER JOIN' set @xsql=@xsql+' dbo.Applikation ON dbo.ApplikationKontakt.Applikationnr = dbo.Applikation.ApplikationNr INNER JOIN' set @xsql=@xsql+' dbo.ApplikationKategorie ON dbo.Applikation.ApplikationKategorieNr = dbo.ApplikationKategorie.ApplikationKategorieNr LEFT OUTER JOIN' set @xsql=@xsql+' dbo.GremiumGruppierung ON dbo.Applikation.ApplikationVerantwortungNr = dbo.GremiumGruppierung.GremiumGruppierungNr LEFT OUTER JOIN' set @xsql=@xsql+' dbo.GremiumBereich ON dbo.Applikation.ApplikationTeamnr = dbo.GremiumBereich.GremiumBereichNr LEFT OUTER JOIN' set @xsql=@xsql+' dbo.GremiumBereich AS GremiumBereich_1 ON dbo.Applikation.RfcBoardNr = GremiumBereich_1.GremiumBereichNr LEFT OUTER JOIN' set @xsql=@xsql+' dbo.GremiumGruppierung AS GremiumGruppierung_2 ON dbo.Applikation.FachlicheOe = GremiumGruppierung_2.GremiumGruppierungNr' set @xsql=@xsql+' WHERE (dbo.Applikation.Aktiv = 1) AND (dbo.Person.Aktiv = 1) AND (dbo.ApplikationKontakt.Aktiv = 1) AND (dbo.Kontakttyp.KontakttypNr = 1 OR' set @xsql=@xsql+' dbo.Kontakttyp.KontakttypNr = 2) AND (GremiumBereich_1.GremiumGruppierungNr = 1) AND (dbo.GremiumGruppierung.GremiumNr = 3)' set @xsql='SELECT DISTINCT' set @xsql=@xsql+' TOP (100) PERCENT dbo.Applikation.Bezeichnung AS Applikation, dbo.Person.Name, dbo.Person.Vorname, SUBSTRING(dbo.Person.Telefon, ' set @xsql=@xsql+' LEN(dbo.Person.Telefon) - 4, 5) AS telefon, dbo.Person.EMail, dbo.Kontakttyp.Bezeichnung AS Kontakttyp, dbo.Kontakttyp.KontakttypNr, ' set @xsql=@xsql+' dbo.ApplikationKategorie.Bezeichnung AS Kategorie, dbo.get_gremium(dbo.GremiumGruppierung.GremiumGruppierungNr) AS IT_Aufgaben_erbringt, ' set @xsql=@xsql+' dbo.GremiumBereich.Bereich AS Team, dbo.get_gremium(GremiumGruppierung_2.GremiumGruppierungNr) AS KeyUser_Aufgaben_erbringt, ' set @xsql=@xsql+' GremiumBereich_1.Beschreibung AS RFCBoard' set @xsql=@xsql+' FROM dbo.ApplikationKontakt INNER JOIN' set @xsql=@xsql+' dbo.Kontakttyp ON dbo.ApplikationKontakt.KontakttypNr = dbo.Kontakttyp.KontakttypNr INNER JOIN' set @xsql=@xsql+' dbo.Person ON dbo.ApplikationKontakt.PersonNr = dbo.Person.PersonNr INNER JOIN' set @xsql=@xsql+' dbo.Applikation ON dbo.ApplikationKontakt.Applikationnr = dbo.Applikation.ApplikationNr INNER JOIN' set @xsql=@xsql+' dbo.ApplikationKategorie ON dbo.Applikation.ApplikationKategorieNr = dbo.ApplikationKategorie.ApplikationKategorieNr LEFT OUTER JOIN' set @xsql=@xsql+' dbo.GremiumGruppierung AS GremiumGruppierung_2 ON dbo.Applikation.FachlicheOe = GremiumGruppierung_2.GremiumGruppierungNr LEFT OUTER JOIN' set @xsql=@xsql+' dbo.GremiumGruppierung ON dbo.Applikation.ApplikationVerantwortungNr = dbo.GremiumGruppierung.GremiumGruppierungNr LEFT OUTER JOIN' set @xsql=@xsql+' dbo.GremiumBereich ON dbo.Applikation.ApplikationTeamnr = dbo.GremiumBereich.GremiumBereichNr LEFT OUTER JOIN' set @xsql=@xsql+' dbo.GremiumBereich AS GremiumBereich_1 ON dbo.Applikation.RfcBoardNr = GremiumBereich_1.GremiumBereichNr' set @xsql=@xsql+' WHERE (dbo.Applikation.Aktiv = 1) AND (dbo.Person.Aktiv = 1) AND (dbo.ApplikationKontakt.Aktiv = 1) AND (dbo.Kontakttyp.KontakttypNr = 1 OR' set @xsql=@xsql+' dbo.Kontakttyp.KontakttypNr = 2) AND (GremiumBereich_1.GremiumGruppierungNr = 1 or GremiumBereich_1.GremiumGruppierungNr = 77) AND (dbo.GremiumGruppierung.GremiumNr = 3)' --set @xsql = 'SELECT DISTINCT ' -- set @xsql=@xsql+' TOP (100) PERCENT dbo.Applikation.Bezeichnung AS Applikation, dbo.Person.Name, dbo.Person.Vorname, SUBSTRING(dbo.Person.Telefon, LEN(dbo.Person.Telefon) ' -- set @xsql=@xsql+' - 4, 5) AS telefon, dbo.Person.EMail, dbo.Kontakttyp.Bezeichnung AS Kontakttyp, dbo.Kontakttyp.KontakttypNr, dbo.ApplikationKategorie.Bezeichnung AS Kategorie, ' -- set @xsql=@xsql+' isnull(dbo.get_gremium(dbo.GremiumGruppierung.GremiumGruppierungNr),'') AS IT_Aufgaben_erbringt, dbo.GremiumBereich.Bereich AS Team, ' -- set @xsql=@xsql+' isnull(dbo.get_gremium(GremiumGruppierung_2.GremiumGruppierungNr),'') AS KeyUser_Aufgaben_erbringt, GremiumBereich_1.Beschreibung AS RFCBoard ' --set @xsql=@xsql+' FROM dbo.ApplikationKontakt INNER JOIN ' -- set @xsql=@xsql+' dbo.Kontakttyp ON dbo.ApplikationKontakt.KontakttypNr = dbo.Kontakttyp.KontakttypNr INNER JOIN ' -- set @xsql=@xsql+' dbo.Person ON dbo.ApplikationKontakt.PersonNr = dbo.Person.PersonNr RIGHT OUTER JOIN ' -- set @xsql=@xsql+' dbo.Applikation ON dbo.ApplikationKontakt.Applikationnr = dbo.Applikation.ApplikationNr LEFT OUTER JOIN ' -- set @xsql=@xsql+' dbo.ApplikationKategorie ON dbo.Applikation.ApplikationKategorieNr = dbo.ApplikationKategorie.ApplikationKategorieNr LEFT OUTER JOIN ' -- set @xsql=@xsql+' dbo.GremiumGruppierung AS GremiumGruppierung_2 ON dbo.Applikation.FachlicheOe = GremiumGruppierung_2.GremiumGruppierungNr LEFT OUTER JOIN ' -- set @xsql=@xsql+' dbo.GremiumGruppierung ON dbo.Applikation.ApplikationVerantwortungNr = dbo.GremiumGruppierung.GremiumGruppierungNr LEFT OUTER JOIN ' -- set @xsql=@xsql+' dbo.GremiumBereich ON dbo.Applikation.ApplikationTeamnr = dbo.GremiumBereich.GremiumBereichNr LEFT OUTER JOIN ' -- set @xsql=@xsql+' dbo.GremiumBereich AS GremiumBereich_1 ON dbo.Applikation.RfcBoardNr = GremiumBereich_1.GremiumBereichNr ' --set @xsql=@xsql+' WHERE (dbo.Applikation.Aktiv = 1) AND (dbo.Person.Aktiv = 1) AND (dbo.ApplikationKontakt.Aktiv = 1) ' set @xsql = 'SELECT DISTINCT [Applikation],[Name],[Vorname],[telefon],[EMail],[Kontakttyp],[KontakttypNr],[Kategorie],[IT_Aufgaben_erbringt],[Team],[KeyUser_Aufgaben_erbringt] ' set @xsql=@xsql+' ,[RFCBoard] from view_applikationslisten ' if @sqlwhere <> '' begin set @xsql = @xsql + ' where (' + @sqlwhere + ')' end set @xsql=@xsql+' ORDER BY Applikation, KontakttypNr' print @xsql exec(@xsql) END GO