PDC_REPORT_CreazioneDB/sql/Produzione/funzioni/C6MartPeriodico_getTrimestre_Sim.sql
2025-06-10 16:47:41 +02:00

45 lines
1.4 KiB
Transact-SQL

CREATE FUNCTION [C6MartPeriodico].[getTrimestre_Sim]
(
@data datetime,
@primo bit
)
RETURNS VARCHAR(8)
AS
BEGIN
-- Declare the return variable here
DECLARE @retData VARCHAR(8)
--PER SIMULAZIONE (Commentare x Trimestrale)------------
declare @DtAnno varchar(4) = convert(varchar(4), @data, 112)
declare @DtAnnoPrec varchar(4) = convert(varchar(4), dateAdd(YYYY, -1, @data), 112)
IF @primo = 0
begin
if @data < @DtAnno + '0301' -- 0101 - 0228
set @retdata= @DtAnnoPrec + '1130'
else if @data < @DtAnno + '0601' -- 0301 - 0531
set @retdata= DateAdd(dd, -1, @DtAnno + '0301')
else if @data < @DtAnno + '0901' -- 0601 - 0831
set @retdata= @DtAnno + '0531'
else if @data < @DtAnno + '1201' -- 0901 - 1130
set @retdata= @DtAnno + '0831'
else -- 1201 - 1231
set @retdata= @DtAnno + '1130'
end
ELSE
begin
if @data < @DtAnno + '0301' -- 0101 - 0228
set @retdata= @DtAnnoPrec + '1201'
else if @data < @DtAnno + '0601' -- 0301 - 0531
set @retdata= @DtAnno + '0301'
else if @data < @DtAnno + '0901' -- 0601 - 0831
set @retdata= @DtAnno + '0601'
else if @data < @DtAnno + '1201' -- 0901 - 1130
set @retdata= @DtAnno + '0901'
else -- 1201 - 1231
set @retdata= @DtAnno + '1201'
end
-- Return the result of the function
RETURN @retData
----- TEST -----------------------
-- SET @retData = '20151130'
-- RETURN @retData
END