Operation Details
Description:  
Sterotype: nsmulti
SQL
SELECT
  DISTINCT(Provider.providerConcernRoleID),
  ConcernRole.primaryAlternateID,
  ConcernRole.concernRoleName,
  ProviderCategoryPeriod.category,
  Provider.recordStatus,
  ProviderType.type,
  ProviderOffering.startDate,
  ProviderOffering.endDate
INTO
  :providerConcernRoleID,
  :primaryAlternateID,
  :concernRoleName,
  :category,
  :recordStatus,
  :providerType,
  :startDate,
  :endDate 
FROM
  Provider,
  ConcernRole,
  ProviderCategoryPeriod,
  ProviderType,
  ProviderOffering,
  Address 
WHERE ProviderOffering.providerConcernRoleID = Provider.providerConcernRoleID 
  AND ProviderOffering.serviceOfferingID = :serviceOfferingID 
  AND ConcernRole.concernRoleID = Provider.providerConcernRoleID 
  AND Provider.providerConcernRoleID = ProviderCategoryPeriod.providerConcernRoleID 
  AND ProviderCategoryPeriod.providerCategoryID = ProviderType.providerCategoryID 
  AND ConcernRole.primaryAddressID =Address.addressID 
  AND Provider.recordStatus ='PS3' 
  AND 
  (
    ProviderOffering.startDate <= CURRENT_DATE 
    AND 
    (
      ProviderOffering.endDate >= CURRENT_DATE 
      OR ProviderOffering.endDate IS NULL 
    ) 
  ) 
  AND ProviderOffering.recordStatus ='POS2' 
  AND 
  (
    :searchByName = '0' 
    OR upper(ConcernRole.concernRoleName) like :providerName 
  ) 
  AND 
  (
    :searchByReferenceNumber = '0' 
    OR ConcernRole.primaryAlternateID = :referenceNumber 
  ) 
  AND 
  (
    :searchByType = '0' 
    OR ProviderType.type = :providerCategoryType 
  ) 
  AND 
  (
    :searchByCategory = '0' 
    OR ProviderCategoryPeriod.category = :category 
  ) 
  AND 
  (
    :searchByAddress = '0' 
    OR upper(Address.addressData) like :address 
  ) 
ORDER BY Provider.providerConcernRoleID