UFN_EDUCATIONALHISTORY_ISUNIQUEENROLLMENT
Determines if a given enrollment is unique across institution and date range.
Return
Return Type |
---|
bit |
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@EDUCATIONALHISTORYID | uniqueidentifier | IN | |
@CONSTITUENTID | uniqueidentifier | IN | |
@EDUCATIONALINSTITUTIONID | uniqueidentifier | IN | |
@STARTDATE | UDT_FUZZYDATE | IN | |
@DATELEFT | UDT_FUZZYDATE | IN |
Definition
Copy
CREATE function dbo.UFN_EDUCATIONALHISTORY_ISUNIQUEENROLLMENT(
@EDUCATIONALHISTORYID uniqueidentifier,
@CONSTITUENTID uniqueidentifier,
@EDUCATIONALINSTITUTIONID uniqueidentifier,
@STARTDATE dbo.UDT_FUZZYDATE,
@DATELEFT dbo.UDT_FUZZYDATE
)
returns bit
with execute as caller
as begin
declare @ISUNIQUE bit
set @ISUNIQUE = 1
select @ISUNIQUE = CASE WHEN COUNT(dbo.EDUCATIONALHISTORY.[ID]) > 0 THEN 0 ELSE 1 END
from
dbo.EDUCATIONALHISTORY
inner join dbo.EDUCATIONALHISTORYSTATUSHISTORY on dbo.EDUCATIONALHISTORY.[ID] = dbo.EDUCATIONALHISTORYSTATUSHISTORY.[EDUCATIONALHISTORYID]
inner join dbo.SCHOOL on dbo.EDUCATIONALHISTORY.[EDUCATIONALINSTITUTIONID] = dbo.SCHOOL.[ID]
where
(dbo.EDUCATIONALHISTORY.[CONSTITUENTID] = @CONSTITUENTID) and
(dbo.EDUCATIONALHISTORY.[EDUCATIONALINSTITUTIONID] = @EDUCATIONALINSTITUTIONID) and
(dbo.EDUCATIONALHISTORY.[ID] <> @EDUCATIONALHISTORYID) and
(
((dbo.UFN_DATE_FROMFUZZYDATE(@STARTDATE) >= dbo.UFN_DATE_FROMFUZZYDATE(dbo.EDUCATIONALHISTORY.[STARTDATE])) and (dbo.UFN_DATE_FROMFUZZYDATE(@STARTDATE) <= dbo.UFN_DATE_FROMFUZZYDATE(dbo.EDUCATIONALHISTORY.[DATELEFT])))
or
((dbo.UFN_DATE_FROMFUZZYDATE(@DATELEFT) >= dbo.UFN_DATE_FROMFUZZYDATE(dbo.EDUCATIONALHISTORY.[STARTDATE])) and (dbo.UFN_DATE_FROMFUZZYDATE(@DATELEFT) <= dbo.UFN_DATE_FROMFUZZYDATE(dbo.EDUCATIONALHISTORY.[DATELEFT])))
or
((dbo.UFN_DATE_FROMFUZZYDATE(@STARTDATE) < dbo.UFN_DATE_FROMFUZZYDATE(dbo.EDUCATIONALHISTORY.[STARTDATE])) and (dbo.UFN_DATE_FROMFUZZYDATE(@DATELEFT) > dbo.UFN_DATE_FROMFUZZYDATE(dbo.EDUCATIONALHISTORY.[DATELEFT])))
or
((dbo.UFN_DATE_FROMFUZZYDATE(dbo.EDUCATIONALHISTORY.[DATELEFT]) is null) and (dbo.UFN_DATE_FROMFUZZYDATE(@DATELEFT) is null))
or
((dbo.UFN_DATE_FROMFUZZYDATE(dbo.EDUCATIONALHISTORY.[DATELEFT]) is null) and (dbo.UFN_DATE_FROMFUZZYDATE(@DATELEFT) >= dbo.UFN_DATE_FROMFUZZYDATE(dbo.EDUCATIONALHISTORY.[STARTDATE])))
or
((dbo.UFN_DATE_FROMFUZZYDATE(@DATELEFT) is null) and (dbo.UFN_DATE_FROMFUZZYDATE(dbo.EDUCATIONALHISTORY.[DATELEFT]) > dbo.UFN_DATE_FROMFUZZYDATE(@STARTDATE)))
)
return @ISUNIQUE
end