---
title: "SQL-036: Read COMPANY_ADDRESS_PHONE, COMPANY_ADDRESS, ADDRESS for `clsCustomerAddressCollection`"
summary: Read statement for `clsCustomerAddressCollection` against COMPANY_ADDRESS_PHONE, COMPANY_ADDRESS, ADDRESS.
status: draft
owner: SAIF
last_reviewed: 2026-07-24
library: SAIF.Business.CustomerContact
reference_type: package
---

# SQL-036: Read COMPANY_ADDRESS_PHONE, COMPANY_ADDRESS, ADDRESS for `clsCustomerAddressCollection`

This statement supports `clsCustomerAddressCollection` by executing a read operation against COMPANY_ADDRESS_PHONE, COMPANY_ADDRESS, ADDRESS.

## Classification

| Field | Value |
| --- | --- |
| SQL ID | SQL-036 |
| Operation type | Read |
| Execution method | Inline |
| Database | Oracle |
| Schema | `[unqualified]**` |
| Command type | Text |
| Business object | `clsCustomerAddressCollection` |
| Criteria property | RetrieveSQL |
| Lifecycle method | BeforeRetrieve |

## Parameters

| Parameter | Direction | Type | Max length | Description |
| --- | --- | --- | --- | --- |
| `:CustomerID` | Input | Decimal | N/A | Customer primary key |

## Tables

| Table | Access | Columns used |
| --- | --- | --- |
| [COMPANY_ADDRESS_PHONE](../database-tables.md#company-address-phone) | SELECT / JOIN | See sample SQL** |
| [COMPANY_ADDRESS](../database-tables.md#company-address) | SELECT / JOIN | ADDRESS_SEQ_NUM, COMPANY_SEQ_NUM |
| [ADDRESS](../database-tables.md#address) | SELECT / JOIN | ACTIVE_FLAG, ADDRESS_CODE, ADDRESS_LINE1, ADDRESS_LINE2, ADDRESS_LINE3, ADDRESS_LINE4, ADDRESS_SEQ_NUM, CITY_NAME, COMPANY_SEQ_NUM, COUNTRY_CODE, COUNTY_CODE, CREATE_DATE, CREATE_USER, EFF_DT, EXP_DT, FOREIGN_ADDRESS_FLAG, FOREIGN_POSTAL_CODE, LOCATION_NAME, NOTE_TEXT, PRIMARY_FLAG, STATE, UPDATE_DATE, UPDATE_USER, ZIP_CODE, ZIP_CODE_EXT |

## Sample SQL

```sql
Select (SELECT PHONE_SEQ_NUM FROM COMPANY_ADDRESS_PHONE WHERE COMPANY_SEQ_NUM = COMPANY_ADDRESS.COMPANY_SEQ_NUM AND ADDRESS_SEQ_NUM = COMPANY_ADDRESS.ADDRESS_SEQ_NUM) as ConnectedPhoneID,(SELECT FAX_SEQ_NUM FROM COMPANY_ADDRESS_PHONE WHERE COMPANY_SEQ_NUM = COMPANY_ADDRESS.COMPANY_SEQ_NUM AND ADDRESS_SEQ_NUM = COMPANY_ADDRESS.ADDRESS_SEQ_NUM) as ConnectedFaxID, ADDRESS.ADDRESS_SEQ_NUM as AddressID, ADDRESS.ADDRESS_CODE as AddressCode, ADDRESS.ADDRESS_LINE1 as AddressLine1, ADDRESS.ADDRESS_LINE2 as AddressLine2, ADDRESS.ADDRESS_LINE3 as AddressLine3, ADDRESS.ADDRESS_LINE4 as AddressLine4, ADDRESS.CITY_NAME as CityName, ADDRESS.STATE as StateCode, ADDRESS.ZIP_CODE as ZipCode, ADDRESS.ZIP_CODE_EXT as ZipCodeExtension, ADDRESS.COUNTRY_CODE as CountryCode, ADDRESS.FOREIGN_ADDRESS_FLAG as ForeignAddressFlag, ADDRESS.FOREIGN_POSTAL_CODE as ForeignPostalCode, ADDRESS.CREATE_DATE as CreateDate, ADDRESS.CREATE_USER as CreateUser, ADDRESS.UPDATE_USER as UpdateUser, ADDRESS.UPDATE_DATE as UpdateDate, ADDRESS.EFF_DT as EffectiveDate, ADDRESS.EXP_DT as ExpirationDate, ADDRESS.ACTIVE_FLAG as ActiveFlag, ADDRESS.PRIMARY_FLAG as PrimaryFlag, ADDRESS.NOTE_TEXT as NoteText, ADDRESS.COUNTY_CODE as CountyCode, ADDRESS.LOCATION_NAME as LocationName From COMPANY_ADDRESS, ADDRESS Where COMPANY_ADDRESS.ADDRESS_SEQ_NUM = ADDRESS.ADDRESS_SEQ_NUM AND COMPANY_ADDRESS.COMPANY_SEQ_NUM = :CustomerID
```

## Operations and processes
- [Address info CRUD and linking](../operations/address-info-crud-and-linking.md)

> **Note:** Statements marked with `**` could not be confirmed; treat as unknown until verified.

## Sources
- `Business\SAIF.Business.CustomerContact\Customer\clsCustomerAddressCollection.vb`
