-- ============================================= -- Author: -- Create date: -- Description: -- ============================================= --select [C6MartPeriodico].[getTrimestre2_20190909](getdate(),1) --select [C6MartPeriodico].[getTrimestre2_20190909](getdate(),0) --select c6martperiodico.getTrimestre2_20190909(CAST('20100101' AS DATETIME),1) --SELECT CAST(CAST(YEAR(CAST('20101216' AS DATETIME)) AS VARCHAR) + dbo.getParametro('TrimestreDICEMBRE') AS DATETIME)-16 --CAST(CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreDicembre') AS DATETIME) CREATE FUNCTION [C6MartPeriodico].[getTrimestre2_20190909] ( @data datetime, @primo bit ) RETURNS VARCHAR(8) AS BEGIN -- Declare the return variable here DECLARE @retData VARCHAR(8) --select c6martperiodico.getTrimestre2_20190909(cast ('20111201' as datetime),0) --select dbo.getParametro('TrimestreSettembre') --select cast ('20110630' as datetime)-30 IF @primo = 0 -- Restituisce l'ultimo giorno del trimestre precedente -- Settare per la simulazione SET @retData = '20110830' --V Decommentare nel passaggio in produzione SET @retData = CASE WHEN @data >= CAST(CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreMarzo') AS DATETIME) -30 AND @data < CAST(CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreGiugno') AS DATETIME) - 29 THEN CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreMarzo') WHEN @data >= CAST(CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreGiugno') AS DATETIME) - 29 AND @data < CAST(CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreSettembre') AS DATETIME) - 29 THEN CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreGiugno') WHEN @data >= CAST(CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreSettembre') AS DATETIME) -29 AND @data < CAST(CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreDicembre') AS DATETIME) - 30 THEN CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreSettembre') WHEN @data >= CAST(YEAR(@data) AS VARCHAR)+'0101' AND @data < CAST(CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreMarzo') AS DATETIME)-30 THEN CAST(YEAR(@data) - 1 AS VARCHAR) + dbo.getParametro('TrimestreDicembre') WHEN @data >= CAST(CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreDicembre') AS DATETIME) -31 AND @data <= CAST(CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreDicembre') AS DATETIME) +1 THEN CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreDicembre') END ELSE -- Restituisce il primo giorno del trimestre precedente -- Settare per la simulazione SET @retData = '20110901' SET @retData = CASE WHEN @data >= CAST(CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreMarzo') AS DATETIME) -30 AND @data < CAST(CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreGiugno') AS DATETIME) - 29 THEN CAST(YEAR(@data) AS VARCHAR) + SUBSTRING(dbo.getParametro('TrimestreMarzo'),1,2) + '01' WHEN @data >= CAST(CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreGiugno') AS DATETIME) - 29 AND @data < CAST(CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreSettembre') AS DATETIME) - 29 THEN CAST(YEAR(@data) AS VARCHAR) + SUBSTRING(dbo.getParametro('TrimestreGiugno'),1,2) + '01' WHEN @data >= CAST(CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreSettembre') AS DATETIME) -29 AND @data < CAST(CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreDicembre') AS DATETIME) - 30 THEN CAST(YEAR(@data) AS VARCHAR) + SUBSTRING(dbo.getParametro('TrimestreSettembre'),1,2) + '01' WHEN @data >= CAST(YEAR(@data) AS VARCHAR)+'0101' AND @data < CAST(CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreMarzo') AS DATETIME)-16 THEN CAST(YEAR(@data) - 1 AS VARCHAR) + SUBSTRING(dbo.getParametro('TrimestreDicembre'),1,2) + '01' WHEN @data >= CAST(CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreDicembre') AS DATETIME) -30 AND @data <= CAST(CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreDicembre') AS DATETIME) +1 THEN CAST(YEAR(@data) AS VARCHAR) + SUBSTRING(dbo.getParametro('TrimestreDicembre'),1,2) + '01' END --PER SIMULAZIONE (Commentare x Trimestrale)------------ IF @primo = 0 -- -- Impostare Data Congelamento Dati -- --SET @retData = '20141130' ToDo Fc : test DQ -- --SET @retData = '20151130' -- --SET @retData = '20160229' -- --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 = '20141201' ToDo Fc : test DQ -- --SET @retData = '20151201' -- --SET @retData = '20160301' -- --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' ----------------------------------------- ---------------------------------------------------------- --- TEST ----------------------- --SET @retData = '20151130' --RETURN @retData RETURN @retData END