Operation Details
Description: Retrieves a list of prospect person summary details based on the key.
Sterotype: nsmulti
SQL
SELECT
  AlternateName.firstForename,
  AlternateName.surname,
  ProspectPerson.dateOfBirth,
  ProspectPerson.gender,
  ProspectPerson.personBirthName,
  ProspectPerson.motherBirthSurname,
  ProspectPerson.primaryAlternateID,
  ProspectPerson.concernRoleID,
  ProspectPerson.personConcernRoleID,
  ConcernRole.sensitivity,
  city.elementValue,
  addressLine1.elementValue,
  ConcernRoleDuplicate.originalConcernRoleID,
  ConcernRoleDuplicate.statusCode
INTO
  :firstForename,
  :surname,
  :dateOfBirth,
  :gender,
  :personBirthName,
  :motherBirthSurname,
  :primaryAlternateID,
  :concernRoleID,
  :personConcernRoleID,
  :sensitivity,
  :city,
  :addressLine1,
  :originalConcernRoleID,
  :duplicateStatus 
FROM
  (ProspectPerson 
  
  LEFT OUTER JOIN
  
  ConcernRoleDuplicate 
  ON (ConcernRoleDuplicate.duplicateConcernRoleID =ProspectPerson.concernRoleID 
  AND ConcernRoleDuplicate.statusCode = :concernRoleDuplicateStatus)),
  ConcernRole,
  AlternateName,
  AddressElement city,
  AddressElement addressLine1 
WHERE 
  (
    :searchByFirstForename = '0' 
    OR AlternateName.upperFirstForename like :firstForename 
  ) 
  AND 
  (
    :searchBySurname = '0' 
    OR AlternateName.upperSurname like :surname 
  ) 
  AND ConcernRole.concernRoleID = ProspectPerson.concernRoleID 
  AND AlternateName.concernRoleID = ProspectPerson.concernRoleID 
  AND addressLine1.addressID = ConcernRole.primaryAddressID 
  AND addressLine1.elementType = :addressLine1Type 
  AND city.addressID = ConcernRole.primaryAddressID 
  AND city.elementType = :cityType 
  AND 
  (
    :searchByAddressLine1 = '0' 
    OR addressLine1.upperElementValue like :addressLine1 
  ) 
  AND 
  (
    :searchByCity = '0' 
    OR city.upperElementValue like :city 
  ) 
  AND 
  (
    :searchByGender = '0' 
    OR ProspectPerson.gender = :gender 
  ) 
  AND 
  (
    :searchByDateOfBirth = '0' 
    OR ProspectPerson.dateOfBirth = :dateOfBirth 
  ) 
  AND 
  (
    :searchByPersonBirthName = '0' 
    OR ProspectPerson.upperPersonBirthName like :personBirthname 
  ) 
  AND 
  (
    :searchByMotherBirthName = '0' 
    OR ProspectPerson.upperMotherBirthSurname like :motherBirthSurname 
  ) 
ORDER BY primaryAlternateID