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.
301 lines
18 KiB
301 lines
18 KiB
USE [Vertragsverwaltung_20160404]
|
|
GO
|
|
/****** Object: StoredProcedure [dbo].[F18] Script Date: 02.12.2016 09:08:54 ******/
|
|
DROP PROCEDURE [dbo].[F18]
|
|
GO
|
|
/****** Object: StoredProcedure [dbo].[F18] Script Date: 02.12.2016 09:08:54 ******/
|
|
SET ANSI_NULLS ON
|
|
GO
|
|
SET QUOTED_IDENTIFIER ON
|
|
GO
|
|
|
|
-- =============================================
|
|
-- Author: <Author,,Name>
|
|
-- Create date: <Create Date,,>
|
|
-- Description: <Description,,>
|
|
-- =============================================
|
|
CREATE PROCEDURE [dbo].[F18]
|
|
@von DATETIME = NULL ,
|
|
@bis DATETIME = NULL ,
|
|
@oestruktur INTEGER = NULL ,
|
|
@struktur_Ausschluss VARCHAR(255) = NULL ,
|
|
@Honoris_Ausschluss VARCHAR(255) = NULL
|
|
AS
|
|
BEGIN
|
|
|
|
SET NOCOUNT on
|
|
IF @von IS NULL
|
|
SET @von = '01.01.2015 00:00:01'
|
|
IF @bis IS NULL
|
|
SET @bis = '30.05.2015 23:59:59'
|
|
IF @oestruktur IS NULL
|
|
SET @oestruktur = 25
|
|
IF @struktur_ausschluss IS NULL
|
|
SET @struktur_ausschluss = ''
|
|
IF @honoris_ausschluss IS NULL
|
|
SET @honoris_ausschluss = ''
|
|
|
|
DECLARE @dd1 VARCHAR(2)
|
|
DECLARE @mm1 VARCHAR(2)
|
|
DECLARE @yy1 VARCHAR(4)
|
|
DECLARE @datum VARCHAR(255)
|
|
SET @dd1 = DAY(@von)
|
|
SET @mm1 = MONTH(@von)
|
|
SET @yy1 = YEAR(@von)
|
|
IF LEN(@dd1) < 2
|
|
SET @dd1 = '0' + @dd1
|
|
IF LEN(@mm1) < 2
|
|
SET @mm1 = '0' + @mm1
|
|
SET @datum = @yy1 + '-' + @mm1 + '-' + @dd1 + ' 00:00:00'
|
|
SET @von = CONVERT(DATETIME, @datum, 20)
|
|
SET @dd1 = DAY(@bis)
|
|
SET @mm1 = MONTH(@bis)
|
|
SET @yy1 = YEAR(@bis)
|
|
IF LEN(@dd1) < 2
|
|
SET @dd1 = '0' + @dd1
|
|
IF LEN(@mm1) < 2
|
|
SET @mm1 = '0' + @mm1
|
|
SET @datum = @yy1 + '-' + @mm1 + '-' + @dd1 + ' 23:59:59'
|
|
SET @bis = CONVERT(DATETIME, @datum, 20)
|
|
|
|
DECLARE @tmpa TABLE
|
|
(
|
|
tgnummer VARCHAR(255) ,
|
|
NAME VARCHAR(255) ,
|
|
kst VARCHAR(255) ,
|
|
akutell FLOAT ,
|
|
projektnr INT ,
|
|
projektname VARCHAR(255)
|
|
)
|
|
DECLARE @tmpb TABLE
|
|
(
|
|
tgnummer VARCHAR(255) ,
|
|
NAME VARCHAR(255) ,
|
|
kst VARCHAR(255) ,
|
|
akutell FLOAT ,
|
|
projektnr INT ,
|
|
projektname VARCHAR(255)
|
|
)
|
|
|
|
|
|
|
|
DECLARE @tmpc TABLE
|
|
(
|
|
[OE] [varchar](50) NULL ,
|
|
[OESort] [int] NULL ,
|
|
[Name] [varchar](50) NULL ,
|
|
[Vorname] [varchar](50) NULL ,
|
|
[Sortierung] [int] NULL ,
|
|
[TGNummer] [varchar](50) NULL ,
|
|
[Sort] [int] NULL ,
|
|
[Engagement_Effektiv] [float] NOT NULL ,
|
|
[PAufwand] [float] NULL ,
|
|
[RFC_300] [float] NULL ,
|
|
[CTB] [float] NULL ,
|
|
[RTB] [float] NULL ,
|
|
[RFC_200] [float] NULL ,
|
|
[Total] [float] NULL ,
|
|
[Soll] [float] NULL ,
|
|
[Prod] [numeric](18, 2) NULL ,
|
|
[Anteil_CTB] [numeric](18, 2) NULL ,
|
|
[Anteil_Rtb] [numeric](18, 2) NULL
|
|
)
|
|
DECLARE @tmpd TABLE
|
|
(
|
|
[OE] [varchar](50) NULL ,
|
|
[OESort] [int] NULL ,
|
|
[Name] [varchar](50) NULL ,
|
|
[Vorname] [varchar](50) NULL ,
|
|
[Sortierung] [int] NULL ,
|
|
[TGNummer] [varchar](50) NULL ,
|
|
[Sort] [int] NULL ,
|
|
[Engagement_Effektiv] [float] NOT NULL ,
|
|
[PAufwand] [float] NULL ,
|
|
[RFC_300] [float] NULL ,
|
|
[CTB] [float] NULL ,
|
|
[RTB] [float] NULL ,
|
|
[RFC_200] [float] NULL ,
|
|
[Total] [float] NULL ,
|
|
[Soll] [float] NULL ,
|
|
[Prod] [numeric](18, 2) NULL ,
|
|
[Anteil_CTB] [numeric](18, 2) NULL ,
|
|
[Anteil_Rtb] [numeric](18, 2) NULL
|
|
)
|
|
|
|
DECLARE @f18 TABLE
|
|
(
|
|
projektnr INT ,
|
|
projektname VARCHAR(255) ,
|
|
aktuell FLOAT ,
|
|
vormonat FLOAT ,
|
|
differenz FLOAT ,
|
|
neu bit ,
|
|
ctb int
|
|
)
|
|
|
|
INSERT @tmpa
|
|
EXEC sp_rpt_fhrlst_projekte_nach_ma @von, @bis, @oestruktur, @struktur_Ausschluss, @Honoris_Ausschluss
|
|
--set @von = DATEADD(MONTH,-1,@von)
|
|
SET @bis = DATEADD(MONTH, -1, @bis)
|
|
INSERT @tmpb
|
|
EXEC sp_rpt_fhrlst_projekte_nach_ma @von, @bis, @oestruktur, @struktur_Ausschluss, @Honoris_Ausschluss
|
|
|
|
--SELECT projektnr, projektname, ROUND(SUM(akutell)/8,0) FROM @tmpa GROUP BY projektnr, projektname ORDER BY projektnr
|
|
--SELECT projektnr, projektname, ROUND(SUM(akutell)/8,0) FROM @tmpb GROUP BY projektnr, projektname ORDER BY projektnr
|
|
|
|
--set @von = DATEADD(MONTH, +1, @von)
|
|
SET @bis = DATEADD(MONTH, +1, @bis)
|
|
INSERT @tmpc
|
|
EXEC sp_rpt_fhrlst_aufwand @von, @bis, @oestruktur, @struktur_Ausschluss, @Honoris_Ausschluss,null,'intern'
|
|
--set @von = DATEADD(MONTH, -1, @von)
|
|
SET @bis = DATEADD(MONTH, -1, @bis)
|
|
INSERT @tmpd
|
|
EXEC sp_rpt_fhrlst_aufwand @von, @bis, @oestruktur, @struktur_Ausschluss, @Honoris_Ausschluss,null,'intern'
|
|
|
|
DECLARE @sum1 FLOAT
|
|
DECLARE @sum2 FLOAT
|
|
|
|
DECLARE @pnr VARCHAR(255)
|
|
DECLARE @pn VARCHAR(255)
|
|
DECLARE @summe FLOAT
|
|
|
|
DECLARE xc CURSOR
|
|
FOR
|
|
SELECT projektnr, projektname, ROUND(SUM(akutell) / 8, 0)
|
|
FROM @tmpb
|
|
GROUP BY projektnr, projektname
|
|
ORDER BY projektnr
|
|
OPEN xc
|
|
FETCH NEXT FROM xc INTO @pnr, @pn, @summe
|
|
WHILE @@FETCH_STATUS = 0
|
|
BEGIN
|
|
INSERT @f18 ( projektnr, projektname, aktuell, vormonat, differenz, neu )
|
|
VALUES ( @pnr, @pn, 0, @summe, 0, 0 )
|
|
FETCH NEXT FROM xc INTO @pnr, @pn, @summe
|
|
END
|
|
CLOSE xc
|
|
DEALLOCATE xc
|
|
|
|
DECLARE @rc INT
|
|
DECLARE xc CURSOR
|
|
FOR
|
|
SELECT projektnr, projektname, ROUND(SUM(akutell) / 8, 0)
|
|
FROM @tmpa
|
|
GROUP BY projektnr, projektname
|
|
ORDER BY projektnr
|
|
OPEN xc
|
|
FETCH NEXT FROM xc INTO @pnr, @pn, @summe
|
|
WHILE @@FETCH_STATUS = 0
|
|
BEGIN
|
|
SELECT @rc = COUNT(*)
|
|
FROM @f18
|
|
WHERE projektnr = @pnr
|
|
IF @rc = 0
|
|
BEGIN
|
|
INSERT @f18 ( projektnr, projektname, aktuell, vormonat, differenz, neu )
|
|
VALUES ( @pnr, @pn, @summe, 0, 0, 1 )
|
|
END
|
|
ELSE
|
|
BEGIN
|
|
UPDATE @f18
|
|
SET aktuell = @summe
|
|
WHERE projektnr = @pnr
|
|
END
|
|
FETCH NEXT FROM xc INTO @pnr, @pn, @summe
|
|
END
|
|
CLOSE xc
|
|
DEALLOCATE xc
|
|
SELECT @sum1 = ROUND(SUM(ctb) / 8, 0)
|
|
FROM @tmpc
|
|
SELECT @sum2 = ROUND(SUM(ctb) / 8, 0)
|
|
FROM @tmpd
|
|
INSERT @f18 ( projektnr, projektname, aktuell, vormonat, differenz, neu )
|
|
VALUES ( 0, 'AU', @sum1, @sum2, @sum1 - @sum2, 0 )
|
|
|
|
UPDATE @f18
|
|
SET ctb = 1
|
|
|
|
SELECT @sum1 = ROUND(SUM(rtb) / 8, 2)
|
|
FROM @tmpc
|
|
SELECT @sum2 = ROUND(SUM(rtb) / 8, 2)
|
|
FROM @tmpd
|
|
INSERT @f18 ( projektnr, projektname, aktuell, vormonat, differenz, neu, ctb )
|
|
VALUES ( 0, 'IN', @sum1, @sum2, @sum1 - @sum2, 0, 0 )
|
|
|
|
|
|
|
|
|
|
|
|
DELETE FROM @tmpa
|
|
DELETE FROM @tmpb
|
|
|
|
--set @von = DATEADD(MONTH, +1, @von)
|
|
SET @bis = DATEADD(MONTH, +1, @bis)
|
|
PRINT @von
|
|
PRINT @bis
|
|
INSERT @tmpa
|
|
EXEC sp_rpt_fhrlst_incidents_nach_ma @von, @bis, @oestruktur, @struktur_Ausschluss, @Honoris_Ausschluss
|
|
--set @von = DATEADD(MONTH, -1, @von)
|
|
SET @bis = DATEADD(MONTH, -1, @bis)
|
|
INSERT @tmpb
|
|
EXEC sp_rpt_fhrlst_incidents_nach_ma @von, @bis, @oestruktur, @struktur_Ausschluss, @Honoris_Ausschluss
|
|
|
|
|
|
DECLARE xc CURSOR
|
|
FOR
|
|
SELECT projektnr, projektname, ROUND(SUM(akutell) / 8, 0)
|
|
FROM @tmpb
|
|
GROUP BY projektnr, projektname
|
|
ORDER BY projektnr
|
|
OPEN xc
|
|
FETCH NEXT FROM xc INTO @pnr, @pn, @summe
|
|
WHILE @@FETCH_STATUS = 0
|
|
BEGIN
|
|
INSERT @f18 ( projektnr, projektname, aktuell, vormonat, differenz, neu,ctb )
|
|
VALUES ( @pnr, @pn, 0, @summe, 0, 0,0 )
|
|
FETCH NEXT FROM xc INTO @pnr, @pn, @summe
|
|
END
|
|
CLOSE xc
|
|
DEALLOCATE xc
|
|
|
|
|
|
DECLARE xc CURSOR
|
|
FOR
|
|
SELECT projektnr, projektname, ROUND(SUM(akutell) / 8, 0)
|
|
FROM @tmpa
|
|
GROUP BY projektnr, projektname
|
|
ORDER BY projektnr
|
|
OPEN xc
|
|
FETCH NEXT FROM xc INTO @pnr, @pn, @summe
|
|
WHILE @@FETCH_STATUS = 0
|
|
BEGIN
|
|
SELECT @rc = COUNT(*)
|
|
FROM @f18
|
|
WHERE projektnr = @pnr
|
|
IF @rc = 0
|
|
BEGIN
|
|
INSERT @f18 ( projektnr, projektname, aktuell, vormonat, differenz, neu,ctb )
|
|
VALUES ( @pnr, @pn, @summe, 0, 0, 1 ,0)
|
|
END
|
|
ELSE
|
|
BEGIN
|
|
UPDATE @f18
|
|
SET aktuell = @summe
|
|
WHERE projektnr = @pnr
|
|
END
|
|
FETCH NEXT FROM xc INTO @pnr, @pn, @summe
|
|
END
|
|
CLOSE xc
|
|
DEALLOCATE xc
|
|
|
|
UPDATE @f18
|
|
SET differenz = aktuell - vormonat
|
|
|
|
SELECT *
|
|
FROM @f18
|
|
ORDER BY projektnr
|
|
END
|
|
|
|
|
|
GO
|