UFN_SMARTFIELDVALUEGROUP_CALCULATEDATEVALUEGROUP

Returns the value group name valid for the given date value.

Return

Return Type
nvarchar(100)

Parameters

Parameter Parameter Type Mode Description
@SMARTFIELDID uniqueidentifier IN
@DATEVALUE datetime IN

Definition

Copy


CREATE function dbo.UFN_SMARTFIELDVALUEGROUP_CALCULATEDATEVALUEGROUP
(
    @SMARTFIELDID uniqueidentifier, 
    @DATEVALUE datetime
)
returns nvarchar(100)
with execute as caller
as 
begin
    declare @GROUPNAME nvarchar(100);

    declare @DATEVALUEGROUPUNITCODE tinyint;
    select
        @DATEVALUEGROUPUNITCODE = DATEVALUEGROUPUNITCODE
    from
        dbo.SMARTFIELD
    where
        SMARTFIELD.ID = @SMARTFIELDID;

    if (@DATEVALUEGROUPUNITCODE = 0)
        select top 1 @GROUPNAME = GROUPNAME from dbo.SMARTFIELDVALUEGROUP 
        where datediff(year, @DATEVALUE, getdate()) >= DATEVALUERANGE
        and SMARTFIELDID = @SMARTFIELDID
        order by DATEVALUERANGE desc;

    else if (@DATEVALUEGROUPUNITCODE = 1)
        select top 1 @GROUPNAME = GROUPNAME from dbo.SMARTFIELDVALUEGROUP 
        where datediff(quarter, @DATEVALUE, getdate()) >= DATEVALUERANGE
        and SMARTFIELDID = @SMARTFIELDID
        order by DATEVALUERANGE desc;

    else if (@DATEVALUEGROUPUNITCODE = 2)
        select top 1 @GROUPNAME = GROUPNAME from dbo.SMARTFIELDVALUEGROUP 
        where datediff(month, @DATEVALUE, getdate()) >= DATEVALUERANGE
        and SMARTFIELDID = @SMARTFIELDID
        order by DATEVALUERANGE desc;

    else if (@DATEVALUEGROUPUNITCODE = 3)
        select top 1 @GROUPNAME = GROUPNAME from dbo.SMARTFIELDVALUEGROUP 
        where datediff(week, @DATEVALUE, getdate()) >= DATEVALUERANGE
        and SMARTFIELDID = @SMARTFIELDID
        order by DATEVALUERANGE desc;

    else if (@DATEVALUEGROUPUNITCODE = 4)
        select top 1 @GROUPNAME = GROUPNAME from dbo.SMARTFIELDVALUEGROUP 
        where datediff(day, @DATEVALUE, getdate()) >= DATEVALUERANGE
        and SMARTFIELDID = @SMARTFIELDID
        order by DATEVALUERANGE desc;

    return @GROUPNAME
end