USE [Vertragsverwaltung_20160404] GO /****** Object: UserDefinedFunction [dbo].[get_arbeitstage] Script Date: 02.12.2016 09:08:53 ******/ DROP FUNCTION [dbo].[get_arbeitstage] GO /****** Object: UserDefinedFunction [dbo].[get_arbeitstage] Script Date: 02.12.2016 09:08:55 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO -- ============================================= -- Author: -- Create date: -- Description: -- ============================================= CREATE FUNCTION [dbo].[get_arbeitstage] ( @madetailnr INT, @jahr int, @monat INT ) RETURNS float AS BEGIN DECLARE @SOLL INT DECLARE @Netto INT DECLARE @oenr INT DECLARE @Individuelle_Reduktion float DECLARE @reduktion_nicht_verrechenbar int DECLARE @valuefound INT SET @valuefound=-1 SET @Individuelle_Reduktion=0 SELECT @Individuelle_Reduktion=Individuelle_Reduktion, @oenr=oenr FROM dbo.MADetails WHERE MADetailNr=@madetailnr WHILE @valuefound<0 BEGIN SELECT @reduktion_nicht_verrechenbar=ISNULL(reduktion_nicht_verrechenbar,0),@oenr=parentid FROM oe WHERE oenr=@oenr IF @reduktion_nicht_verrechenbar>0 SET @valuefound=1 IF @oenr = 0 BEGIN SET @valuefound=2 IF @reduktion_nicht_verrechenbar=0 SET @reduktion_nicht_verrechenbar=0 END end IF @Individuelle_Reduktion > 0 SET @Individuelle_Reduktion=@Individuelle_Reduktion/12 DECLARE @res float SELECT @res = Plantage FROM jahrestabelle WHERE jahr=@jahr AND monat=@monat SET @res=@res*((100-@reduktion_nicht_verrechenbar))/100 SET @res=@res - @Individuelle_Reduktion SET @res=ROUND(@res,2) --SELECT @res = Arbeitstage FROM jahrestabelle WHERE jahr=@jahr AND monat=@monat RETURN @res END GO