V_QUERY_MEMBERSHIPMARKETING

Membership query for marketing integration.

Fields

Field Field Type Null Description
ID uniqueidentifier System record ID
CONSTITUENTID uniqueidentifier Member system record ID
GIVENBYID uniqueidentifier yes Given by system record ID
EXPIRATIONDATE date yes Expiration date
ISGIFT bit Is gift
MEMBER nvarchar(154) yes Member
GIVENBY nvarchar(154) yes Given by
JOINDATE datetime yes Join date
LASTRENEWEDON datetime yes Last renewed
LEVEL nvarchar(100) yes Membership level
PROGRAM nvarchar(100) Membership program
SENDRENEWAL nvarchar(24) yes Send renewal notice to
STATUS nvarchar(9) yes Status
TERM nvarchar(8) yes Membership term
TYPE nvarchar(100) yes Membership type
CURRENTLEVELPRICE money yes Membership level price
NEXTLEVELNAME nvarchar(100) yes Next membership level
NEXTLEVELPRICE money yes Next membership level price
ADDEDBY nvarchar(128) yes Added by
CHANGEDBY nvarchar(128) yes Changed by
DATEADDED datetime Date added
DATECHANGED datetime Date changed
TSLONG bigint yes Timestamp value
ORGANIZATIONCURRENTLEVELPRICE money yes Membership level price (organization currency)
ORGANIZATIONEXCHANGERATEID uniqueidentifier yes Currency exchange rate
ORGANIZATIONNEXTLEVELPRICE money yes Next membership level price (organization currency)
ORGANIZATIONNEXTLEVELEXCHANGERATEID uniqueidentifier yes Next membership level currency exchange rate
BASECURRENCYID uniqueidentifier yes Base currency ID
LOOKUPID nvarchar(100) yes Lookup ID
NAMEONCARD nvarchar(700) yes Name on card
ISPRIMARY bit Is primary
ISDROPPED bit Is dropped

Definition

Copy
/*
Generated by Blackbaud AppFx Platform
Date:  11/11/2014 4:23:35 PM
Assembly Version:  Blackbaud.AppFx.Platform.SqlClr, Version=4.0.2.0, Culture=neutral, PublicKeyToken=null
Copyright Blackbaud
*/
CREATE VIEW dbo.V_QUERY_MEMBERSHIPMARKETING AS



select
  [MEMBERSHIP].[ID],
  [MEMBER].[CONSTITUENTID],
  [MEMBERSHIP].[GIVENBYID],
  -- JLM 7/6/11 Stripping timestamp to account for recent changes in the export process 

  convert(date,[MEMBERSHIP].[EXPIRATIONDATE]) as EXPIRATIONDATE,
  [MEMBERSHIP].[ISGIFT],
  [CONSTITUENT].[NAME] as [MEMBER],
  [GIVENBY].[NAME] as [GIVENBY],
  [MEMBERSHIP].[JOINDATE],
  [MEMBERSHIP].[LASTRENEWEDON],
  [MEMBERSHIPLEVEL].[NAME] as [LEVEL],
  [MEMBERSHIPPROGRAM].[NAME] as [PROGRAM],
  [MEMBERSHIP].[SENDRENEWAL],
  case when ([MEMBERSHIP].[STATUSCODE] = 0 and dateadd(month, [MEMBERSHIPLEVEL].[AFTEREXPIRATION], [MEMBERSHIP].[EXPIRATIONDATE]) <  getdate()) then 'Lapsed'
        else [MEMBERSHIP].[STATUS]
  end as [STATUS],
  [MEMBERSHIPLEVELTERM].[TERM],
  [MEMBERSHIPLEVELTYPECODE].[DESCRIPTION] as [TYPE],
  [MEMBERSHIPLEVELTERM].[AMOUNT] as [CURRENTLEVELPRICE],
  [NEXTLEVEL].[NAME] as [NEXTLEVELNAME],
  [NEXTLEVELTERM].[AMOUNT] as [NEXTLEVELPRICE],
  [ADDEDBY].[USERNAME] as [ADDEDBY],
  [CHANGEDBY].[USERNAME] as [CHANGEDBY],
  [MEMBERSHIP].[DATEADDED],
  [MEMBERSHIP].[DATECHANGED],
  [MEMBERSHIP].[TSLONG],
  [MEMBERSHIPLEVELTERM].ORGANIZATIONAMOUNT as [ORGANIZATIONCURRENTLEVELPRICE],
  [MEMBERSHIPLEVELTERM].ORGANIZATIONEXCHANGERATEID,
  [NEXTLEVELTERM].[ORGANIZATIONAMOUNT]as [ORGANIZATIONNEXTLEVELPRICE],
  [NEXTLEVELTERM].[ORGANIZATIONEXCHANGERATEID] as [ORGANIZATIONNEXTLEVELEXCHANGERATEID],
  [MEMBERSHIPLEVELTERM].BASECURRENCYID,
  [CONSTITUENT].[LOOKUPID],
  (select TOP 1 [MEMBERSHIPCARD].[NAMEONCARD]
    from dbo.[MEMBERSHIPCARD]
    where [MEMBERSHIPCARD].[MEMBERID] = [MEMBER].[ID]
    and [MEMBERSHIPCARD].[STATUSCODE] <> 2
    order by [MEMBERSHIPCARD].[STATUSCODE] desc, [MEMBERSHIPCARD].[EXPIRATIONDATE] desc
  ) as [NAMEONCARD],
  [MEMBER].[ISPRIMARY],
  [MEMBER].[ISDROPPED]

  /*#EXTENSION*/
from dbo.[MEMBERSHIP]
inner join dbo.[MEMBERSHIPPROGRAM] on dbo.[MEMBERSHIP].[MEMBERSHIPPROGRAMID] = [MEMBERSHIPPROGRAM].[ID]
inner join dbo.[MEMBER] on [MEMBERSHIP].[ID] = [MEMBER].[MEMBERSHIPID]
left outer join dbo.[MEMBERSHIPLEVEL] on [MEMBERSHIPLEVEL].[ID] = [MEMBERSHIP].[MEMBERSHIPLEVELID]
left outer join dbo.[MEMBERSHIPLEVELTERM] on [MEMBERSHIPLEVELTERM].[ID] = [MEMBERSHIP].[MEMBERSHIPLEVELTERMID]
outer apply (
  /* Find the Next Level, ignore inactive levels */
  select top 1 
    INTERNAL.ID
    , INTERNAL.NAME
  from dbo.MEMBERSHIPLEVEL INTERNAL
  where INTERNAL.SEQUENCE > [MEMBERSHIPLEVEL].SEQUENCE
    and INTERNAL.MEMBERSHIPPROGRAMID = [MEMBERSHIPLEVEL].MEMBERSHIPPROGRAMID 
    and INTERNAL.ISACTIVE = 1
  order by INTERNAL.SEQUENCE
) [NEXTLEVEL]
left outer join dbo.[MEMBERSHIPLEVELTERM] [NEXTLEVELTERM] on [NEXTLEVELTERM].[LEVELID] = [NEXTLEVEL].[ID] and [NEXTLEVELTERM].[TERMCODE] = 0
left outer join dbo.[MEMBERSHIPLEVELTYPECODE] on [MEMBERSHIPLEVELTYPECODE].[ID] = [MEMBERSHIP].[MEMBERSHIPLEVELTYPECODEID]
inner join dbo.[CONSTITUENT] on [CONSTITUENT].[ID] = [MEMBER].[CONSTITUENTID]
left outer join dbo.[CONSTITUENT] as [GIVENBY] on [GIVENBY].[ID] = [MEMBERSHIP].[GIVENBYID]
left outer join dbo.[CHANGEAGENT] as [ADDEDBY] on [ADDEDBY].[ID] = [MEMBERSHIP].[ADDEDBYID]
left outer join dbo.[CHANGEAGENT] as [CHANGEDBY] on [CHANGEDBY].[ID] = [MEMBERSHIP].[CHANGEDBYID]