---
title: Read Policy Data
summary: SQL-028
status: draft
owner: Technical Writer
last_reviewed: 2026-07-31
library: SAIF.Business.Policy.Audit.Premium
reference_type: package
---

# SQL-028: Read Policy Data

This statement supports the premium-audit library by read Policy Data.

## Classification

| Field | Value |
| --- | --- |
| **SQL ID** | SQL-028 |
| **Operation type** | Read |
| **Execution method** | CommandType.Text / DataRequestType.DataResultSet |
| **Database** | Oracle |
| **Schema** | [unqualified]** |
| **Command type** | Text |
| **Business object** | `clsAuditCollection` |
| **Criteria property** | *n/a — application layer* |
| **Lifecycle method** | `clsAuditCollection.GetPoliciesCombinedForAudit (application layer)` |

## Parameters

| Parameter | Direction | Type | Max length | Description |
| --- | --- | --- | --- | --- |
| `:policynumber` | Input | bound from `inPolicyNumber` | — | Bound in `clsAuditCollection.GetPoliciesCombinedForAudit` (line 359) |
| `:auditstartdate` | Input | bound from `inAuditStartDate` | — | Bound in `clsAuditCollection.GetPoliciesCombinedForAudit` (line 360) |
| `:auditenddate` | Input | bound from `inAuditEndDate` | — | Bound in `clsAuditCollection.GetPoliciesCombinedForAudit` (line 361) |

## Tables

| Table | Access | Columns used |
| --- | --- | --- |
| [`POLICY`](../database-tables.md#policy) | JOIN | See sample SQL. |
| [`POLICY_PERIOD`](../database-tables.md#policy_period) | JOIN | See sample SQL. |

## Sample SQL

```sql
SELECT
  distinct p2.policy_num
FROM
  policy p,
  policy p2,
  policy_period pp
WHERE
  p.policy_num = :policynumber
  AND ( ( p.policy_relationship_code = 'LEASE'
          AND p.policy_relationship_policy_num = p.policy_num)
        OR NVL(p.policy_relationship_code, 'x') <> 'LEASE')
  AND p.rate_account = p2.rate_account
  AND p2.policy_num <> :policynumber
  AND ( ( p2.policy_relationship_code = 'LEASE'
          AND p2.policy_relationship_policy_num = p2.policy_num)
        OR NVL(p2.policy_relationship_code, 'x') <> 'LEASE')
  AND p2.policy_num = pp.policy_num
  AND pp.policy_period_exp_date > :auditstartdate
  AND pp.policy_period_eff_date < :auditenddate
```

## Operations and processes
- [Select policies for premium audit (batch/expiring)](../operations/select-policies-for-premium-audit-batch-expiring.md)
- [Select policies for premium audit (off-cycle/daily)](../operations/select-policies-for-premium-audit-off-cycle-daily.md)
- [Assign renewal (batch) audits to auditors](../operations/assign-renewal-batch-audits-to-auditors.md)
- [Assign off-cycle audits to auditors](../operations/assign-off-cycle-audits-to-auditors.md)

## Business rules
- [BR-020](../business-rules.md#br-020-ineligible-policy-types-cannot-be-audited)
- [BR-021](../business-rules.md#br-021-duplicate-audits-are-blocked)



> **Note:** Statements marked with * were inferred from code structure, naming conventions, or
> contextual evidence where direct confirmation was not available in source artifacts. Statements
> marked with ** could not be confirmed; treat as unknown until verified.

## Sources
- `Business/SAIF.Business.Policy.Audit.Premium/clsAuditCollection.vb:344-380, 1214-1240`
