USE [Vertragsverwaltung_20160404] GO /****** Object: UserDefinedFunction [dbo].[get_solved_in] Script Date: 02.12.2016 09:08:53 ******/ DROP FUNCTION [dbo].[get_solved_in] GO /****** Object: UserDefinedFunction [dbo].[get_solved_in] Script Date: 02.12.2016 09:08:55 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE FUNCTION [dbo].[get_solved_in] ( @von DATETIME, @bis DATETIME ) RETURNS @solved_in TABLE (ticketid varchar(255), statusid varchar(255)) AS begin DECLARE @ticketid varchar(255) DECLARE @statusid VARCHAR(255) DECLARE @changedate DATETIME DECLARE @rc int DECLARE xc CURSOR FOR SELECT DISTINCT ticketid FROM txp_ticket_data WHERE ticketid LIKE 'in_%' AND status_neu = 'solved' AND Status_Changedate BETWEEN @von AND @bis OPEN xc FETCH NEXT FROM xc INTO @ticketid WHILE @@FETCH_STATUS=0 BEGIN FETCH NEXT FROM xc INTO @ticketid SELECT TOP 1 @statusid=statusid, @changedate=Status_Changedate FROM txp_ticket_data WHERE ticketid=@ticketid AND status_neu='Solved' ORDER BY Status_Changedate DESC SELECT @rc=COUNT(*) FROM dbo.TXP_Ticket_Data WHERE ticketid=@ticketid AND Status_Changedate>@changedate AND status_neu <> 'Solved' AND status_neu <> 'Geschlossen' AND status_neu <> 'Geschlossen "Autoclose"' AND status_neu <> 'Warten auf Schliessung' IF @rc=0 begin INSERT @solved_in (ticketid, statusid) VALUES(@ticketid, @statusid) end END CLOSE xc DEALLOCATE xc return END GO