-- ============================================= -- Author: -- Create date: -- Description: -- ============================================= --select [C6MartPeriodico].[getTrimestre_20190909](getdate(),0) --select [C6MartPeriodico].[getTrimestre_20190909](getdate(),1) CREATE FUNCTION [C6MartPeriodico].[getTrimestre_20190909] ( @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' 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' ------------------------------------------------------------ -- Return the result of the function RETURN @retData ----- TEST ----------------------- -- SET @retData = '20151130' -- RETURN @retData END