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

41 lines
1.2 KiB
Transact-SQL

CREATE FUNCTION [C6MartPeriodico].[getTrimestre2_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 @retData
END