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.
331 lines
26 KiB
331 lines
26 KiB
USE [Vertragsverwaltung_20160404]
|
|
GO
|
|
/****** Object: StoredProcedure [dbo].[sp_rpt_fhrlst_Anzahl] Script Date: 02.12.2016 09:08:53 ******/
|
|
DROP PROCEDURE [dbo].[sp_rpt_fhrlst_Anzahl]
|
|
GO
|
|
/****** Object: StoredProcedure [dbo].[sp_rpt_fhrlst_Anzahl] Script Date: 02.12.2016 09:08:55 ******/
|
|
SET ANSI_NULLS ON
|
|
GO
|
|
SET QUOTED_IDENTIFIER ON
|
|
GO
|
|
|
|
|
|
|
|
-- =============================================
|
|
-- Author: <Author,,Name>
|
|
-- Create date: <Create Date,,>
|
|
-- Description: <Description,,>
|
|
-- =============================================
|
|
CREATE PROCEDURE [dbo].[sp_rpt_fhrlst_Anzahl]
|
|
@von DATETIME = NULL ,
|
|
@bis DATETIME = NULL,
|
|
@OEStruktur INT = NULL,
|
|
@struktur_Ausschluss VARCHAR(255) = NULL
|
|
AS
|
|
BEGIN
|
|
IF @von IS NULL
|
|
SET @von = '01.03.2013'
|
|
IF @bis IS NULL
|
|
SET @bis = '26.07.2013'
|
|
IF @oestruktur IS NULL
|
|
SET @oestruktur=24
|
|
IF @struktur_ausschluss IS NULL
|
|
SET @struktur_ausschluss = ''
|
|
--DECLARE @per DATETIME = NULL ,
|
|
-- @von DATETIME = NULL ,
|
|
-- @bis DATETIME = NULL
|
|
--SET @per = '01.03.2013'
|
|
--SET @von = '01.03.2013'
|
|
--SET @bis = '31.03.2013'
|
|
DECLARE @save_von DATETIME
|
|
DECLARE @save_bis datetime
|
|
|
|
SET @save_von=@von
|
|
SET @save_bis=@bis
|
|
|
|
SET NOCOUNT ON;
|
|
|
|
DECLARE @tmpa TABLE
|
|
(
|
|
[TGNummer] [varchar](50) NULL ,
|
|
oenr INT ,
|
|
sortierung INT ,
|
|
START DATETIME ,
|
|
Ende DATETIME ,
|
|
[AU_offen] [INT] NOT NULL ,
|
|
[AU_Geschlossen] [INT] NOT NULL ,
|
|
[IN_Offen] [INT] NOT NULL ,
|
|
[IN_Geschlossen] [INT] NOT NULL ,
|
|
[IN_Langlaeufer] [INT] NOT NULL ,
|
|
[IN_Aufwand] [float] NOT NULL ,
|
|
[IN_GT_1PT] INT NOT NULL
|
|
)
|
|
|
|
DECLARE @ansatz FLOAT
|
|
SET @ansatz = 8.5
|
|
|
|
--IF @per IS NULL
|
|
-- SET @per = GETDATE()
|
|
|
|
|
|
--***************************************************************************
|
|
-- Relevante Mitarbeiter am Per-Datum
|
|
--***************************************************************************
|
|
DECLARE @mnr INT
|
|
DECLARE @rc INT
|
|
DECLARE @mm INT
|
|
DECLARE @yy INT
|
|
|
|
DECLARE xm CURSOR
|
|
FOR
|
|
SELECT *
|
|
FROM dbo.get_monatstabelle(@von, @bis)
|
|
ORDER BY start_date
|
|
OPEN xm
|
|
FETCH NEXT FROM xm INTO @von, @bis
|
|
|
|
WHILE @@FETCH_STATUS = 0
|
|
BEGIN
|
|
DECLARE xc CURSOR
|
|
FOR
|
|
SELECT manr
|
|
FROM ma
|
|
WHERE aktiv = 1
|
|
AND gueltig_bis >= @bis
|
|
OPEN xc
|
|
FETCH NEXT FROM xc INTO @mnr
|
|
WHILE @@FETCH_STATUS = 0
|
|
BEGIN
|
|
SELECT @rc = COUNT(*)
|
|
FROM dbo.MADetails
|
|
WHERE manr = @mnr
|
|
AND aktiv = 1
|
|
AND Gueltig_ab <= @von
|
|
|
|
IF @rc > 0
|
|
BEGIN
|
|
|
|
INSERT @tmpa
|
|
SELECT TOP 1
|
|
dbo.MA.TGNummer, madetails.OENr, ma.sortierung, @von, @bis, 0, 0, 0, 0, 0, 0.00, 0
|
|
FROM dbo.MA
|
|
LEFT OUTER JOIN dbo.MADetails ON dbo.MA.MANr = dbo.MADetails.MANr
|
|
WHERE dbo.MADetails.manr = @mnr
|
|
AND dbo.MADetails.Aktiv = 1
|
|
AND Gueltig_ab <= @von
|
|
AND madetails.oenr IN (SELECT id FROM dbo.fnkt_get_kpi_hierarchie(@oestruktur))
|
|
ORDER BY Gueltig_ab DESC
|
|
|
|
END
|
|
FETCH NEXT FROM xc INTO @mnr
|
|
END
|
|
CLOSE xc
|
|
DEALLOCATE xc
|
|
|
|
-- Geschlossene AU
|
|
DECLARE @anzahl INT
|
|
DECLARE @aufwand FLOAT
|
|
DECLARE @ma VARCHAR(255)
|
|
|
|
DECLARE xc CURSOR
|
|
FOR
|
|
SELECT TGNummer, COUNT(TicketId) AS Expr1
|
|
FROM dbo.TXP_AU_Geschlossen
|
|
WHERE Status_Changedate BETWEEN @von AND @bis
|
|
GROUP BY TGNummer
|
|
OPEN xc
|
|
FETCH NEXT FROM xc INTO @ma, @anzahl
|
|
WHILE @@FETCH_STATUS = 0
|
|
BEGIN
|
|
|
|
UPDATE @tmpa
|
|
SET AU_Geschlossen = @anzahl
|
|
WHERE tgnummer = @ma
|
|
AND start = @von
|
|
AND ende = @bis
|
|
FETCH NEXT FROM xc INTO @ma, @anzahl
|
|
END
|
|
CLOSE xc
|
|
DEALLOCATE xc
|
|
|
|
---- Offene AU
|
|
DECLARE xc CURSOR
|
|
FOR
|
|
SELECT TGNummer, COUNT(TicketID) AS Expr1
|
|
FROM dbo.TXP_AU_Offen
|
|
WHERE status_changedate BETWEEN @von AND @bis
|
|
AND ticketid NOT IN ( SELECT ticketid
|
|
FROM dbo.TXP_AU_Geschlossen
|
|
WHERE Status_Changedate BETWEEN @von AND @bis )
|
|
GROUP BY TGNummer
|
|
OPEN xc
|
|
FETCH NEXT FROM xc INTO @ma, @anzahl
|
|
WHILE @@FETCH_STATUS = 0
|
|
BEGIN
|
|
UPDATE @tmpa
|
|
SET AU_offen = @anzahl
|
|
WHERE tgnummer = @ma
|
|
AND start = @von
|
|
AND ende = @bis
|
|
FETCH NEXT FROM xc INTO @ma, @anzahl
|
|
END
|
|
CLOSE xc
|
|
DEALLOCATE xc
|
|
|
|
|
|
---- Geschlossene IN
|
|
|
|
DECLARE xc CURSOR
|
|
FOR
|
|
SELECT TGNummer, COUNT(TicketId) AS Expr1
|
|
FROM dbo.TXP_IN_Geschlossen
|
|
WHERE Status_Changedate BETWEEN @von AND @bis
|
|
GROUP BY TGNummer
|
|
OPEN xc
|
|
FETCH NEXT FROM xc INTO @ma, @anzahl
|
|
WHILE @@FETCH_STATUS = 0
|
|
BEGIN
|
|
UPDATE @tmpa
|
|
SET IN_Geschlossen = @anzahl
|
|
WHERE tgnummer = @ma
|
|
AND start = @von
|
|
AND ende = @bis
|
|
FETCH NEXT FROM xc INTO @ma, @anzahl
|
|
END
|
|
CLOSE xc
|
|
DEALLOCATE xc
|
|
|
|
|
|
|
|
-- Offene IN Langläufer
|
|
DECLARE xc CURSOR
|
|
FOR
|
|
SELECT TGNummer, COUNT(TicketID) AS Expr1
|
|
FROM dbo.TXP_IN_Offene_Langlaeufer
|
|
GROUP BY TGNummer
|
|
OPEN xc
|
|
FETCH NEXT FROM xc INTO @ma, @anzahl
|
|
WHILE @@FETCH_STATUS = 0
|
|
BEGIN
|
|
UPDATE @tmpa
|
|
SET IN_Langlaeufer = @anzahl
|
|
WHERE tgnummer = @ma
|
|
AND start = @von
|
|
AND ende = @bis
|
|
FETCH NEXT FROM xc INTO @ma, @anzahl
|
|
END
|
|
CLOSE xc
|
|
DEALLOCATE xc
|
|
|
|
|
|
-- Geschlossene IN Aufwand
|
|
DECLARE xc CURSOR
|
|
FOR
|
|
SELECT TGNummer, COUNT(Ticket_ID)
|
|
FROM dbo.TXP_IN_Geschlossen_IN_Aufwand
|
|
WHERE status_changedate BETWEEN @von AND @bis AND aufwand > @ansatz
|
|
GROUP BY TGNummer
|
|
OPEN xc
|
|
FETCH NEXT FROM xc INTO @ma, @aufwand
|
|
WHILE @@FETCH_STATUS = 0
|
|
BEGIN
|
|
UPDATE @tmpa
|
|
SET IN_gt_1pt = IN_GT_1PT + @aufwand
|
|
WHERE tgnummer = @ma
|
|
AND start = @von
|
|
AND ende = @bis
|
|
FETCH NEXT FROM xc INTO @ma, @aufwand
|
|
END
|
|
CLOSE xc
|
|
DEALLOCATE xc
|
|
|
|
-- Geschlossene IN Aufwand
|
|
DECLARE xc CURSOR
|
|
FOR
|
|
SELECT TGNummer, SUM(Aufwand)
|
|
FROM dbo.TXP_IN_Geschlossen_Aufwand
|
|
WHERE status_changedate BETWEEN @von AND @bis
|
|
GROUP BY TGNummer
|
|
OPEN xc
|
|
FETCH NEXT FROM xc INTO @ma, @aufwand
|
|
WHILE @@FETCH_STATUS = 0
|
|
BEGIN
|
|
UPDATE @tmpa
|
|
SET IN_Aufwand = in_aufwand + @aufwand
|
|
WHERE tgnummer = @ma
|
|
AND start = @von
|
|
AND ende = @bis
|
|
FETCH NEXT FROM xc INTO @ma, @aufwand
|
|
END
|
|
CLOSE xc
|
|
DEALLOCATE xc
|
|
|
|
|
|
FETCH NEXT FROM xm INTO @von, @bis
|
|
END
|
|
|
|
CLOSE xm
|
|
DEALLOCATE xm
|
|
|
|
---- Offene IN
|
|
-- DECLARE xc CURSOR
|
|
-- FOR
|
|
-- SELECT TGNummer, COUNT(TicketID) AS Expr1
|
|
-- FROM dbo.TXP_IN_Offen
|
|
-- WHERE status_changedate BETWEEN @save_von AND @save_bis
|
|
-- AND ticketid NOT IN ( SELECT ticketid
|
|
-- FROM dbo.TXP_IN_Geschlossen
|
|
-- WHERE Status_Changedate BETWEEN @save_von AND @save_bis )
|
|
-- GROUP BY TGNummer
|
|
-- OPEN xc
|
|
-- FETCH NEXT FROM xc INTO @ma, @anzahl
|
|
-- WHILE @@FETCH_STATUS = 0
|
|
-- BEGIN
|
|
-- UPDATE @tmpa
|
|
-- SET IN_offen = @anzahl
|
|
-- WHERE tgnummer = @ma
|
|
-- AND start = @save_von
|
|
-- FETCH NEXT FROM xc INTO @ma, @anzahl
|
|
-- END
|
|
-- CLOSE xc
|
|
-- DEALLOCATE xc
|
|
|
|
|
|
|
|
UPDATE @tmpa SET in_aufwand = in_aufwand / @ansatz
|
|
|
|
SELECT TOP ( 100 ) PERCENT
|
|
dbo.OE.Bezeichnung AS OE, dbo.OE.Sortierung AS OESort, dbo.MA.Name, dbo.MA.Vorname, dbo.MA.Sortierung, a.TGNummer, a.START, a.ende,
|
|
a.sortierung AS Expr1, a.AU_offen, a.AU_Geschlossen, a.IN_Offen, a.IN_Geschlossen, a.IN_Aufwand, a.IN_GT_1PT, a.in_Langlaeufer
|
|
INTO #tmpfhr
|
|
FROM @tmpa a
|
|
INNER JOIN dbo.MA ON a.TGNummer = dbo.MA.TGNummer
|
|
INNER JOIN dbo.OE ON a.oenr = dbo.OE.OeNr
|
|
WHERE dbo.OE.oenr IN (SELECT id FROM dbo.fnkt_get_kpi_hierarchie(@oestruktur))
|
|
AND dbo.oe.oenr NOT IN ( SELECT item
|
|
FROM dbo.fnkt_split(@struktur_Ausschluss, ',', 1) )
|
|
ORDER BY OESort, dbo.MA.Sortierung, dbo.MA.Name
|
|
|
|
SELECT OE, OESort, Name, Vorname, Sortierung, TGNummer, Expr1 AS Sort, SUM(au_offen) AS au_offen, SUM(AU_Geschlossen) AS au_geschlossen,
|
|
SUM(IN_Offen) AS in_offen, SUM(in_geschlossen) AS in_geschlossen, SUM(in_Aufwand) AS in_Aufwand, SUM(IN_GT_1PT) AS in_get_1pt,
|
|
SUM(IN_Langlaeufer) AS IN_Langlaeufer
|
|
INTO #tmpfhr1
|
|
FROM #tmpfhr
|
|
GROUP BY OE, OESort, Name, Vorname, Sortierung, TGNummer, Expr1
|
|
|
|
|
|
SELECT *
|
|
FROM #tmpfhr1
|
|
ORDER BY OESort, Sortierung, Name
|
|
|
|
DROP TABLE #tmpfhr
|
|
DROP TABLE #tmpfhr1
|
|
|
|
|
|
END
|
|
|
|
|
|
|
|
|
|
GO
|