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.
ITSM/.svn/pristine/b7/b732498b103e2abd08e06866f4d...

105 lines
9.9 KiB

USE [Vertragsverwaltung_20160404]
GO
/****** Object: StoredProcedure [dbo].[sp_mittelfristplanung_differenzen] Script Date: 02.12.2016 09:08:53 ******/
DROP PROCEDURE [dbo].[sp_mittelfristplanung_differenzen]
GO
/****** Object: StoredProcedure [dbo].[sp_mittelfristplanung_differenzen] 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_mittelfristplanung_differenzen]
@datumvon datetime,
@datumbis datetime
as
BEGIN
DECLARE @Mutationen TABLE
(
Typ varchar(10),
Vertragsereignis varchar(255),
Vertragselement varchar(255),
Vertragspartner varchar(255),
Element varchar(255),
Alter_Wert varchar(255),
Neuer_Wert varchar(255),
Datum varchar(255)
)
declare @ve varchar(255)
declare @velement varchar(255)
declare @vp varchar(255)
declare @vnr int
declare @vpnr int
declare @datum datetime
-- Neue Vertragsereignisse
declare xc cursor for
select bezeichnung, vertragselementnr, erstellt_am from dbo.Vertragsereignis where EreignistypNr=3
and Erstellt_am >= @datumvon and Erstellt_am <= @datumbis
open xc
fetch next from xc into @ve, @vnr, @datum
while @@FETCH_STATUS=0 begin
select @velement=bezeichnung, @vpnr=vertragspartnernr from Vertragselement where vertragselementnr=@vnr
select @vp=namez1 from Vertragspartner where VertragspartnerNr=@vpnr
insert @Mutationen(Typ,Vertragsereignis, Vertragselement, Vertragspartner, Element, neuer_wert, alter_wert, datum) values ('E',@ve,@velement,@vp,'Neu erstellt','','',@datum)
fetch next from xc into @ve, @vnr, @datum
end
close xc
deallocate xc
-- Neue Vertragselemente
insert @Mutationen(Typ,Vertragsereignis, Vertragselement, Vertragspartner, Element, neuer_wert, alter_wert, datum)
SELECT distinct 'V' AS Typ, '' AS Vertragsereignis, dbo.Vertragselement.Bezeichnung AS Vertragselement, dbo.Vertragspartner.NameZ1 AS Vertragspartner,
'Neu erstellt' AS element, '' AS alter_wert, '' AS neuer_wert, dbo.Vertragselement.Erstellt_am
FROM dbo.Vertragselement INNER JOIN
dbo.Vertragsereignis ON dbo.Vertragselement.Vertragselementnr = dbo.Vertragsereignis.Vertragselementnr INNER JOIN
dbo.Vertragspartner ON dbo.Vertragselement.VertragspartnerNr = dbo.Vertragspartner.VertragspartnerNr
WHERE (dbo.Vertragsereignis.EreignistypNr = 3)
and dbo.vertragselement.Erstellt_am >= @datumvon and dbo.vertragselement.Erstellt_am <= @datumbis
-- Mutationen auf Vertragsereignis
insert @Mutationen
SELECT 'E' as Typ, dbo.Vertragsereignis.Bezeichnung AS Vertragsereignis, dbo.Vertragselement.Bezeichnung AS Vertragselement, dbo.Vertragspartner.NameZ1 AS Partner,
dbo.History.HistoryObjectdetails, dbo.History.Alter_Wert,
--dbo.History.Neuer_Wert
case when dbo.History.Neuer_Wert='Inaktiv' then 'Inaktiv (V-Ereignis)' else dbo.History.Neuer_Wert end as Neuer_Wert,
convert(datetime,dbo.History.Erstellt_am)
FROM dbo.Vertragselement INNER JOIN
dbo.Vertragsereignis ON dbo.Vertragselement.Vertragselementnr = dbo.Vertragsereignis.Vertragselementnr INNER JOIN
dbo.Vertragspartner ON dbo.Vertragselement.VertragspartnerNr = dbo.Vertragspartner.VertragspartnerNr INNER JOIN
dbo.History ON dbo.Vertragsereignis.EreignisNr = dbo.History.HistoryObjekctKey
where dbo.History.Erstellt_am >= @datumvon and dbo.History.Erstellt_am <= @datumbis and dbo.Vertragsereignis.EreignistypNr=3
and dbo.History.HistoryTypNr=2
-- Mutationen auf Vertragselement
insert @Mutationen
SELECT 'V' as Typ,'' AS Vertragsereignis, dbo.Vertragselement.Bezeichnung AS Vertragselement, dbo.Vertragspartner.NameZ1 AS Partner,
dbo.History.HistoryObjectDetails, dbo.History.Alter_Wert,
--dbo.history.Neuer_Wert
case when dbo.History.Neuer_Wert='Inaktiv' then 'Inaktiv (V-Element)' else dbo.History.Neuer_Wert end as Neuer_Wert,
CONVERT(datetime, dbo.History.Erstellt_am) AS Expr1
FROM dbo.Vertragselement INNER JOIN
dbo.Vertragsereignis ON dbo.Vertragselement.Vertragselementnr = dbo.Vertragsereignis.Vertragselementnr INNER JOIN
dbo.Vertragspartner ON dbo.Vertragselement.VertragspartnerNr = dbo.Vertragspartner.VertragspartnerNr INNER JOIN
dbo.History ON dbo.Vertragselement.Vertragselementnr = dbo.History.HistoryObjekctKey
WHERE dbo.History.Erstellt_am >= @datumvon and dbo.History.Erstellt_am <= @datumbis and dbo.Vertragsereignis.EreignistypNr=3
and dbo.History.HistoryTypNr=1
select distinct * from @Mutationen order by Vertragsereignis, Datum
END
GO