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.
199 lines
13 KiB
199 lines
13 KiB
USE [Vertragsverwaltung_20160404]
|
|
GO
|
|
/****** Object: StoredProcedure [dbo].[sp_lc_reporting] Script Date: 02.12.2016 09:08:53 ******/
|
|
DROP PROCEDURE [dbo].[sp_lc_reporting]
|
|
GO
|
|
/****** Object: StoredProcedure [dbo].[sp_lc_reporting] 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_lc_reporting]
|
|
@fnkt INT,
|
|
@param1 VARCHAR(4096),
|
|
@param2 VARCHAR(4096),
|
|
@param3 VARCHAR(4096),
|
|
@param4 VARCHAR(4096),
|
|
@param5 VARCHAR(4096),
|
|
@param6 VARCHAR(4096)
|
|
AS
|
|
BEGIN
|
|
-- Abgelaufene Überprüfungen
|
|
IF @fnkt=1 BEGIN
|
|
SELECT lc_produktnr AS ProduktNr, bezeichnung AS Produkt, Nächste_Ueberprüfung AS N_Ueberpruefung FROM lc_produkt WHERE Nächste_Ueberprüfung < GETDATE() AND aktiv=1 AND Nächste_Ueberprüfung<>'01.01.1900'
|
|
END
|
|
-- Abgelaufenen Produkte in N Tagen
|
|
IF @fnkt=2 BEGIN
|
|
SELECT lc_produktnr AS ProduktNr, bezeichnung AS Produkt, Nächste_Ueberprüfung AS N_Ueberpruefung, DATEDIFF(DAY, GETDATE(),Nächste_Ueberprüfung) AS in_Tagen
|
|
FROM lc_produkt
|
|
WHERE DATEDIFF(DAY,GETDATE(),Nächste_Ueberprüfung) <= @param1 AND aktiv=1 AND Nächste_Ueberprüfung<>'01.01.1900'
|
|
END
|
|
-- Abgelaufene Entscheidungen
|
|
IF @fnkt=3 BEGIN
|
|
SELECT lc_produktnr AS ProduktNr, bezeichnung AS Produkt, Entscheidungstermin AS Termin
|
|
FROM lc_produkt WHERE Entscheidungstermin < GETDATE() AND aktiv=1 AND Entscheidungstermin<>'01.01.1900'
|
|
END
|
|
--
|
|
IF @fnkt=4 BEGIN
|
|
SELECT lc_produktnr AS ProduktNr, bezeichnung AS Produkt, Entscheidungstermin AS Termin, DATEDIFF(DAY, GETDATE(),Entscheidungstermin) AS in_Tagen
|
|
FROM lc_produkt
|
|
WHERE DATEDIFF(DAY,GETDATE(),Entscheidungstermin) <= @param1 AND aktiv=1 AND Entscheidungstermin<>'01.01.1900'
|
|
END
|
|
|
|
DECLARE @cols AS NVARCHAR(MAX),
|
|
@query AS NVARCHAR(MAX)
|
|
|
|
print @param1
|
|
print @param2
|
|
print @param3
|
|
print @param4
|
|
-- Roadmap nach Phasen
|
|
IF @fnkt=5 OR @fnkt=7 BEGIN
|
|
if @fnkt=5 begin
|
|
IF @param2='' SET @param2='01.01.1900'
|
|
IF @param3='' SET @param3='31.12.4712'
|
|
|
|
end
|
|
IF @fnkt=7 BEGIN
|
|
--SET @param3='31.12.4712'
|
|
set @param3=left(convert(varchar,dateadd(day,cast(@param2 as int),getdate()),104),10)
|
|
set @param2 =left(convert(varchar,getdate(),104),10)
|
|
END
|
|
|
|
|
|
print @param2
|
|
print @param3
|
|
|
|
select @cols = STUFF((SELECT distinct ',' + QUOTENAME(Phase) from dbo.lc_rpt3(@param1,@param2,@param3,@param4)
|
|
FOR XML PATH(''), TYPE
|
|
).value('.', 'NVARCHAR(MAX)')
|
|
,1,1,'')
|
|
set @query = 'SELECT lc_produktnr as ProduktNr, Produkt,' + @cols + ' from
|
|
(
|
|
select p.lc_produktnr,p.Produkt,
|
|
p.datum,
|
|
d.phase
|
|
from dbo.lc_rpt4('+CHAR(39)+@param1+CHAR(39)+','+CHAR(39)+@param2+CHAR(39)+','+CHAR(39)+@param3+CHAR(39)+','+@param4+') p
|
|
left join dbo.lc_rpt3('+CHAR(39)+@param1+CHAR(39)+','+CHAR(39)+@param2+CHAR(39)+','+CHAR(39)+@param3+CHAR(39)+','+@param4+') d
|
|
on p.lc_phasenr = d.lc_phasenr
|
|
) x
|
|
pivot
|
|
(
|
|
max(datum)
|
|
for Phase in (' + @cols + ')
|
|
) p '
|
|
|
|
|
|
execute(@query)
|
|
end
|
|
|
|
|
|
-- Roadmap nach Produkten
|
|
IF @fnkt=6 BEGIN
|
|
IF @param2='' SET @param2='01.01.1900'
|
|
IF @param3='' SET @param3='31.12.4712'
|
|
--set @param2=right(@param2,4)+'-'+substring(@param2,4,2)+'-'+left(@param2,2)
|
|
--set @param3=right(@param3,4)+'-'+substring(@param3,4,2)+'-'+left(@param3,2)
|
|
select @cols = STUFF((SELECT distinct ',' + QUOTENAME(Phase) from dbo.lc_rpt1(@param1,@param2,@param3, @param4)
|
|
FOR XML PATH(''), TYPE
|
|
).value('.', 'NVARCHAR(MAX)')
|
|
,1,1,'')
|
|
PRINT @cols
|
|
|
|
set @query = 'SELECT lc_produktnr as ProduktNr, Produkt,' + @cols + ' from
|
|
(
|
|
select p.lc_produktnr,p.Produkt,
|
|
p.datum,
|
|
d.phase
|
|
from dbo.lc_rpt2('+CHAR(39)+@param1+CHAR(39)+','+CHAR(39)+@param2+CHAR(39)+','+CHAR(39)+@param3+CHAR(39)+','+@param4+') p
|
|
left join dbo.lc_rpt1('+CHAR(39)+@param1+CHAR(39)+','+CHAR(39)+@param2+CHAR(39)+','+CHAR(39)+@param3+CHAR(39)+','+@param4+') d
|
|
on p.lc_phasenr = d.lc_phasenr
|
|
) x
|
|
pivot
|
|
(
|
|
max(datum)
|
|
for Phase in (' + @cols + ')
|
|
) p '
|
|
|
|
execute(@query)
|
|
end
|
|
|
|
|
|
|
|
-- IF @fnkt=7 BEGIN
|
|
-- select @cols = STUFF((SELECT distinct ',' + QUOTENAME(Phase) from dbo.lc_rpt5(@param1,@param2)
|
|
-- FOR XML PATH(''), TYPE
|
|
-- ).value('.', 'NVARCHAR(MAX)')
|
|
-- ,1,1,'')
|
|
--PRINT @cols
|
|
|
|
--set @query = 'SELECT lc_produktnr as ProduktNr, Produkt,' + @cols + ' from
|
|
-- (
|
|
-- select p.lc_produktnr,p.Produkt,
|
|
-- p.datum,
|
|
-- d.phase
|
|
-- from dbo.lc_rpt6('+CHAR(39)+@param1+CHAR(39)+','+CHAR(39)+@param2+CHAR(39)+') p
|
|
-- left join dbo.lc_rpt5('+CHAR(39)+@param1+CHAR(39)+','+CHAR(39)+@param2+CHAR(39)+') d
|
|
-- on p.lc_phasenr = d.lc_phasenr
|
|
-- ) x
|
|
-- pivot
|
|
-- (
|
|
-- max(datum)
|
|
-- for Phase in (' + @cols + ')
|
|
-- ) p '
|
|
|
|
-- execute(@query)
|
|
-- end
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
--IF OBJECT_ID (N'_tmp_lc_rpt1', N'U') IS NOT NULL DROP TABLE [dbo].[_tmp_lc_rpt1]
|
|
--IF OBJECT_ID (N'_tmp_lc_rpt2', N'U') IS NOT NULL DROP TABLE [dbo].[_tmp_lc_rpt2]
|
|
--SELECT * INTO _tmp_lc_rpt1 FROM dbo.lc_rpt1(@param1,@param2,@param3)
|
|
--SELECT * INTO _tmp_lc_rpt2 FROM dbo.lc_rpt2(@param1,@param2,@param3)
|
|
|
|
|
|
--set @query = 'SELECT lc_produktnr as ProduktNr, Produkt,' + @cols + ' from
|
|
-- (
|
|
-- select p.lc_produktnr,p.Produkt,
|
|
-- p.datum,
|
|
-- d.phase
|
|
-- from _tmp_lc_rpt2 p
|
|
-- left join _tmp_lc_rpt1 d
|
|
-- on p.lc_phasenr = d.lc_phasenr
|
|
-- ) x
|
|
-- pivot
|
|
-- (
|
|
-- max(datum)
|
|
-- for Phase in (' + @cols + ')
|
|
-- ) p '
|
|
END
|
|
|
|
|
|
|
|
GO
|