You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
132 lines
3.1 KiB
132 lines
3.1 KiB
USE [BEA]
|
|
GO
|
|
|
|
/****** Object: UserDefinedFunction [dbo].[fnkt_get_tgdata_Data] Script Date: 06.10.2013 10:37:12 ******/
|
|
DROP FUNCTION [dbo].[fnkt_get_tgdata_Data]
|
|
GO
|
|
|
|
/****** Object: UserDefinedFunction [dbo].[fnkt_get_tgdata_Data] Script Date: 06.10.2013 10:37:12 ******/
|
|
SET ANSI_NULLS ON
|
|
GO
|
|
|
|
SET QUOTED_IDENTIFIER ON
|
|
GO
|
|
|
|
-- =============================================
|
|
-- Author: <Author,,Name>
|
|
-- Create date: <Create Date,,>
|
|
-- Description: <Description,,>
|
|
-- =============================================
|
|
CREATE FUNCTION [dbo].[fnkt_get_tgdata_Data]
|
|
(
|
|
@itgnummer VARCHAR(255)
|
|
)
|
|
RETURNS
|
|
@t1 TABLE
|
|
(
|
|
funktionsnummer VARCHAR(255) ,
|
|
funktionsbezeichnung VARCHAR(255) ,
|
|
plattform VARCHAR(255) ,
|
|
verwaltungmit VARCHAR(255) ,
|
|
verwaltungdurch VARCHAR(255) ,
|
|
berechtigungIn VARCHAR(255) ,
|
|
berechtigungfuer VARCHAR(255) ,
|
|
eigentuemer VARCHAR(255)
|
|
)
|
|
AS
|
|
BEGIN
|
|
|
|
DECLARE @fstelle VARCHAR(255)
|
|
DECLARE @fnr INT
|
|
DECLARE @fbezeichnung VARCHAR(255)
|
|
DECLARE @fnummer VARCHAR(255)
|
|
DECLARE @parent INT
|
|
|
|
DECLARE @tgtmp1 TABLE
|
|
(
|
|
ID INT ,
|
|
Bezeichnung VARCHAR(255) ,
|
|
Beschreibung VARCHAR(255) ,
|
|
Sequenz INT ,
|
|
aktiv BIT ,
|
|
erstellt_am DATETIME ,
|
|
mutiert_am DATETIME ,
|
|
mutierer INT ,
|
|
typ VARCHAR(255) ,
|
|
MKey INT,
|
|
Berechtigungstyp VARCHAR(255)
|
|
)
|
|
|
|
DECLARE @tgt1 TABLE
|
|
(
|
|
funktionsnummer VARCHAR(255) ,
|
|
funktionsbezeichnung VARCHAR(255) ,
|
|
plattform VARCHAR(255) ,
|
|
verwaltungmit VARCHAR(255) ,
|
|
verwaltungdurch VARCHAR(255) ,
|
|
berechtigungIn VARCHAR(255) ,
|
|
berechtigungfuer VARCHAR(255) ,
|
|
eigentuemer VARCHAR(255)
|
|
)
|
|
|
|
DECLARE @sql VARCHAR(4096)
|
|
|
|
DECLARE @tgtmp TABLE ( fstelle VARCHAR(255) )
|
|
|
|
INSERT @tgtmp
|
|
SELECT dbo.Funktionstelle.Funktionsstelle
|
|
FROM dbo.Personal INNER JOIN
|
|
dbo.Personal_FunktionStelle ON dbo.Personal.Personalnr = dbo.Personal_FunktionStelle.PersonalNr INNER JOIN
|
|
dbo.Funktionstelle ON dbo.Personal_FunktionStelle.FunktionStelleNr = dbo.Funktionstelle.FunktionstelleNr
|
|
WHERE funktionstelle.aktiv=1 and personal_funktionstelle.aktiv=1 and tgnummer = @itgnummer
|
|
|
|
|
|
|
|
DECLARE xx CURSOR
|
|
FOR
|
|
SELECT fstelle
|
|
FROM @tgtmp
|
|
OPEN xx
|
|
FETCH NEXT FROM xx INTO @fnummer
|
|
WHILE @@FETCH_STATUS = 0
|
|
BEGIN
|
|
SELECT @fnr = funktionstellenr
|
|
FROM funktionstelle
|
|
WHERE funktionsstelle = @fnummer
|
|
|
|
INSERT @tgt1 SELECT DISTINCT * FROM dbo.fnkt_get_Report_Data(@fnr)
|
|
FETCH NEXT FROM xx INTO @fnummer
|
|
END
|
|
CLOSE xx
|
|
DEALLOCATE xx
|
|
|
|
DECLARE @tg VARCHAR(255)
|
|
DECLARE @name VARCHAR(255)
|
|
|
|
DECLARE @tgtg TABLE
|
|
(
|
|
tgnummer VARCHAR(255) ,
|
|
NAME VARCHAR(255)
|
|
)
|
|
|
|
INSERT @tgtg
|
|
SELECT dbo.Personal.TGNummer, dbo.personal.name
|
|
FROM dbo.Personal
|
|
WHERE tgnummer=@itgnummer
|
|
|
|
UPDATE @tgt1
|
|
SET funktionsnummer = tgnummer, funktionsbezeichnung = name
|
|
FROM @tgtg
|
|
INSERT @t1
|
|
SELECT DISTINCT *
|
|
FROM @tgt1
|
|
ORDER BY verwaltungdurch, plattform, verwaltungmit
|
|
|
|
|
|
|
|
RETURN
|
|
END
|
|
|
|
GO
|
|
|