CREATE FUNCTION [C6MartPeriodico].[getTrimestre] ( @data datetime, @primo bit ) RETURNS VARCHAR(8) AS BEGIN -- Declare the return variable here DECLARE @retData VARCHAR(8) -- Add the T-SQL statements to compute the return value here IF @primo = 0 -- Restituisce l'ultimo giorno del trimestre precedente SET @retData = CASE WHEN @data <= CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreMarzo') THEN CAST(YEAR(@data) - 1 AS VARCHAR) + dbo.getParametro('TrimestreDicembre') WHEN @data > CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreMarzo') AND @data <= CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreGiugno') THEN CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreMarzo') WHEN @data > CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreGiugno') AND @data <= CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreSettembre') THEN CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreGiugno') WHEN @data > CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreSettembre') AND @data <= CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreDicembre') THEN CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreSettembre') END ELSE -- Restituisce il primo giorno del trimestre precedente SET @retData = CASE WHEN @data <= CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreMarzo') THEN CAST(YEAR(@data) - 1 AS VARCHAR) + SUBSTRING(dbo.getParametro('TrimestreDicembre'),1,2) + '01' WHEN @data > CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreMarzo') AND @data <= CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreGiugno') THEN CAST(YEAR(@data) AS VARCHAR) + SUBSTRING(dbo.getParametro('TrimestreMarzo'),1,2) + '01' WHEN @data > CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreGiugno') AND @data <= CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreSettembre') THEN CAST(YEAR(@data) AS VARCHAR) + SUBSTRING(dbo.getParametro('TrimestreGiugno'),1,2) + '01' WHEN @data > CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreSettembre') AND @data <= CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreDicembre') THEN CAST(YEAR(@data) AS VARCHAR) + SUBSTRING(dbo.getParametro('TrimestreSettembre'),1,2) + '01' END --PER SIMULAZIONE (Commentare x Trimestrale)------------ --IF @primo = 0 -- -- Impostare Data Congelamento Dati -- --SET @retData = '20150228'ToDo Fc : test DQ -- --SET @retData = '20151130' -- --SET @retData = '20160229' -- --SET @retData = '20160531' -- --SET @retData = '20160831' -- --SET @retData = '20161130' -- --SET @retData = '20170228' -- --SET @retData = '20170531' -- --SET @retData = '20170831' -- --SET @retData = '20171130' -- --SET @retData = '20180228' -- --SET @retData = '20180531' -- --SET @retData = '20180831' -- --SET @retData = '20181130' -- --SET @retData = '20190228' -- SET @retData = '20190531' -- SET @retData = '20190831' -- SET @retData = '20191130' -- SET @retData = '20200229' -- SET @retData = '20200531' -- SET @retData = '20200831' -- SET @retData = '20201130' -- SET @retData = '20210228' --SET @retData = '20210531' -- SET @retData = '20210831' --set @retData = '20211130' --set @retData='20220228' --set @retData='20220531' --set @retData='20220831' --set @retdata='20221130' --set @retdata='20230831' --set @retdata='20231130' --set @retdata='20240229' --set @retdata='20240531' --set @retdata='20240831' --set @retdata='20241130' --set @retdata='20250228' set @retData='20250530' --ELSE -- -- Impostare Primo giorno del mese di Simulazione -- --SET @retData = '20150301'ToDo Fc : test DQ -- --SET @retData = '20151201' -- --SET @retData = '20160301' -- --SET @retData = '20160601' -- --SET @retData = '20160901' -- --SET @retData = '20161201' -- --SET @retData = '20170301' -- --SET @retData = '20170601' -- --SET @retData = '20170901' -- --SET @retData = '20171201' -- --SET @retData = '20180301' -- --SET @retData = '20180601' -- --SET @retData = '20180901' -- --SET @retData = '20181201' -- --SET @retData = '20190301' -- SET @retData = '20190601' -- SET @retData = '20190901' -- SET @retData = '20191201' -- SET @retData = '20200301' -- SET @retData = '20200601' -- SET @retData = '20200901' -- Set @retData = '20201201' --SET @retData = '20210301' --SET @retData = '20210601' --SET @retData = '20200901' --set @retData = '20211201' --set @retData='20220301' --SET @retData = '20220601' --SET @retData='20220901' --set @retData='20221201' --set @retData='20230901' --set @retData='20231201' --set @retData='20240301' --set @retData='20240601' --set @retData='20240901' --set @retData='20241201' --set @retData='20250301' set @retData='20250601' ------------------------------------------------------------ -- Return the result of the function RETURN @retData ----- TEST ----------------------- -- SET @retData = '20151130' -- RETURN @retData END