UFN_MEMBERSHIPPROGRAM_GETTERMS

Return

Return Type
table

Parameters

Parameter Parameter Type Mode Description
@PROGRAMID uniqueidentifier IN

Definition

Copy


CREATE function dbo.UFN_MEMBERSHIPPROGRAM_GETTERMS
    (
        @PROGRAMID uniqueidentifier
  )
  returns table
  as return
  (
        select 
            MEMBERSHIPPROGRAMID
            ,TERMTIMELENGTH
            ,TERMLENGTHCODE
            ,ISACTIVE
            ,SEQUENCE = row_number() over (order by LOGICAL_SEQUENCE) - 1
            ,INUSE
        from (
        select distinct 
                MEMBERSHIPPROGRAMID = MP.ID
                ,TERMTIMELENGTH = MLT.TERMTIMELENGTH
                ,TERMLENGTHCODE = MLT.TERMLENGTHCODE
                ,LOGICAL_SEQUENCE = (min(MLT.SEQUENCE) over( partition by termtimelength, termlength))
                ,ISACTIVE = (max(cast(MLT.ISACTIVE as smallint)) over( partition by termtimelength, termlength))
                ,INUSE = (max(cast(dbo.UFN_MEMBERSHIPLEVELTERM_INUSE(MLT.ID) as smallint)) over ( partition by termtimelength, termlength))
        from
            MEMBERSHIPPROGRAM MP
            inner join MEMBERSHIPLEVEL ML on MP.ID = ML.MEMBERSHIPPROGRAMID
            inner join MEMBERSHIPLEVELTERM MLT on ML.ID = MLT.LEVELID 
            where MP.ID = @PROGRAMID) a
    )