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

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