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