UFN_PATTERNBLOCKMEETING_GETVALID_LENGTHINPERIODS
Check to see if the length is valid for the number of available periods
Return
Return Type |
---|
int |
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@TIMETABLEDAYPERIODID | uniqueidentifier | IN | |
@LENGTHINPERIODS | int | IN |
Definition
Copy
create function dbo.UFN_PATTERNBLOCKMEETING_GETVALID_LENGTHINPERIODS
(
@TIMETABLEDAYPERIODID uniqueidentifier,
@LENGTHINPERIODS int
)
returns int
as
begin
declare @LENGTHINPERIODSVALUE integer;
set @LENGTHINPERIODSVALUE = @LENGTHINPERIODS;
while @LENGTHINPERIODSVALUE > 0
begin
if not (select endrow.ROW_NUMBER
from
(select ROW_NUMBER() OVER (ORDER BY B.STARTTIME) as 'ROW_NUMBER'
from
TIMETABLEDAYPERIOD A
inner join
TIMETABLEDAYPERIOD B on A.TIMETABLEDAYID = B.TIMETABLEDAYID
where
A.ID = @TIMETABLEDAYPERIODID
and B.STARTTIME >= A.STARTTIME
) as endrow
where
endrow.ROW_NUMBER = @LENGTHINPERIODSVALUE) is null
BREAK
else
begin
set @LENGTHINPERIODSVALUE = @LENGTHINPERIODSVALUE - 1
CONTINUE
end
end
return @LENGTHINPERIODSVALUE
end