113 lines
5.9 KiB
Transact-SQL
113 lines
5.9 KiB
Transact-SQL
CREATE FUNCTION [C6MartPeriodico].[getTrimestre2]
|
|
(
|
|
@data datetime,
|
|
@primo bit
|
|
)
|
|
RETURNS VARCHAR(8)
|
|
AS
|
|
BEGIN
|
|
-- Declare the return variable here
|
|
DECLARE @retData VARCHAR(8)
|
|
--select c6martperiodico.getTrimestre2(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'
|
|
-- 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'x
|
|
--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'--DA COMMENTARE IN TRIMESTRALE EFFETTIVA
|
|
--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'
|
|
-- 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 = '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'--DA COMMENTARE IN TRIMESTRALE EFFETTIVA
|
|
-----------------------------------------
|
|
RETURN @retData
|
|
END |