troubleshooting Question

Simplify SQL with loops?

Avatar of ksummers
ksummers asked on
Oracle DatabaseSQL
7 Comments3 Solutions372 ViewsLast Modified:
Hello.  I am working on this VERY long sql statement.  It needs simplifying, using a loop.  Basically, the result is output into two sections in a Excel report.  The days section is a series of union and select statements.  The SQL accepts two parameters :posteda and :postedb.

SELECT   a.COUNT "Total Loans Posted",
         SUM (b.COUNT) AS "Total Payee & Parcel Matches",
         SUM (b.COUNT) * 2 AS "Total Data Elements",
         'ATLS Payee & Parcel' AS "Source", SUM (c.COUNT) AS "Loan Volume",
         2 AS "Factor", SUM (c.COUNT) * 2 "Data Elements",
         (SUM (c.COUNT) * 2) / (SUM (b.COUNT) * 2) AS "Rate",
         NULL AS "On Day 1", NULL AS "By Day 2", NULL AS "By Day 3",
         NULL AS "By Day 4", NULL AS "By Day 5", NULL AS "By Day 6",
         NULL AS "By Day 7", NULL AS "By Day 8", NULL AS "By Day 9",
         NULL AS "By Day 10", NULL AS "By Day 11", NULL AS "By Day 12",
         NULL AS "By Day 13", NULL AS "By Day 14", NULL AS "By Day 15",
         NULL AS "By Day 16", NULL AS "By Day 17", NULL AS "By Day 18",
         NULL AS "By Day 19", NULL AS "By Day 20", NULL AS "By Day 21",
         NULL AS "By Day 22", NULL AS "By Day 23", NULL AS "By Day 24",
         NULL AS "By Day 25", NULL AS "By Day 26", NULL AS "By Day 27",
         NULL AS "By Day 28", NULL AS "By Day 29", NULL AS "By Day 30",
         NULL AS "By Day 31"
    FROM (SELECT   l.lender_number, COUNT (DISTINCT l.loan_number) AS COUNT
              FROM loan l
             WHERE l.lender_number in (106,222,472,591,685,708,936)
               AND l.loan_posting_date > :posteda
               AND l.loan_posting_date < :postedb
          GROUP BY l.lender_number) a,
         (SELECT   /*+ index (l XIE1LOAN) index (ptdb XIE1PTDB_TAX_LINE))*/
                   l.lender_number, lender_payee_code,
                   ptdb.payee_parcel_number, l.loan_number,
                   COUNT (DISTINCT l.loan_number) AS COUNT
              FROM loan l, ptdb_tax_line ptdb
             WHERE l.lender_number in (106,222,472,591,685,708,936)
               AND l.loan_posting_date > :posteda
               AND l.loan_posting_date < :postedb
               AND l.lender_number = ptdb.lender_number
               AND l.loan_number = ptdb.loan_number
          GROUP BY l.lender_number,
                   lender_payee_code,
                   ptdb.payee_parcel_number,
                   l.loan_number) b,
         (SELECT   /*+ index (l XIE1LOAN) index (lp XPKLOAN_PARCEL) index (ptdb XIE1PTDB_TAX_LINE))*/
                   l.lender_number, lender_payee_code,
                   ptdb.payee_parcel_number, l.loan_number,
                   COUNT (DISTINCT l.loan_number) AS COUNT
              FROM loan l, loan_parcel lp, ptdb_tax_line ptdb
             WHERE l.lender_number in (106,222,472,591,685,708,936)
               AND l.lender_number = lp.lender_number
               AND l.loan_number = lp.loan_number
               AND l.lender_number = ptdb.lender_number
               AND l.loan_number = ptdb.loan_number
               AND l.loan_posting_date > :posteda
               AND l.loan_posting_date < :postedb
            GROUP BY l.lender_number,
                   lender_payee_code,
                   ptdb.payee_parcel_number,
                   l.loan_number) c
   WHERE b.lender_number(+) = a.lender_number
     AND c.lender_number(+) = b.lender_number
     AND c.lender_payee_code(+) = b.lender_payee_code
     AND c.loan_number(+) = b.loan_number
     AND c.payee_parcel_number(+) = b.payee_parcel_number
GROUP BY a.COUNT
UNION ALL
SELECT   NULL "Total Loans Posted", NULL AS "Total Payee & Parcel Matches",
         NULL AS "Total Data Elements", 'ATLS Payee - Analysis Only' AS "Source",
         SUM (c.COUNT) AS " Loan Volume", 1 "Factor",
         SUM (c.COUNT) * 1 "Data Elements",
         (SUM (c.COUNT) * 1) / (SUM (b.COUNT) * 2) AS "Rate",
         NULL AS "On Day 1", NULL AS "By Day 2", NULL AS "By Day 3",
         NULL AS "By Day 4", NULL AS "By Day 5", NULL AS "By Day 6",
         NULL AS "By Day 7", NULL AS "By Day 8", NULL AS "By Day 9",
         NULL AS "By Day 10", NULL AS "By Day 11", NULL AS "By Day 12",
         NULL AS "By Day 13", NULL AS "By Day 14", NULL AS "By Day 15",
         NULL AS "By Day 16", NULL AS "By Day 17", NULL AS "By Day 18",
         NULL AS "By Day 19", NULL AS "By Day 20", NULL AS "By Day 21",
         NULL AS "By Day 22", NULL AS "By Day 23", NULL AS "By Day 24",
         NULL AS "By Day 25", NULL AS "By Day 26", NULL AS "By Day 27",
         NULL AS "By Day 28", NULL AS "By Day 29", NULL AS "By Day 30",
         NULL AS "By Day 31"
    FROM (SELECT   l.lender_number, COUNT (DISTINCT l.loan_number) AS COUNT
              FROM loan l
             WHERE l.lender_number in (106,222,472,591,685,708,936)
               AND l.loan_posting_date > :posteda
               AND l.loan_posting_date < :postedb
          GROUP BY l.lender_number) a,
         (SELECT   /*+ index (l XIE1LOAN) index (ptdb XIE1PTDB_TAX_LINE))*/
                   l.lender_number, lender_payee_code,
                   ptdb.payee_parcel_number, l.loan_number,
                   COUNT (DISTINCT l.loan_number) AS COUNT
              FROM loan l, ptdb_tax_line ptdb
             WHERE l.lender_number in (106,222,472,591,685,708,936)
               AND l.loan_posting_date > :posteda
               AND l.loan_posting_date < :postedb
               AND l.lender_number = ptdb.lender_number
               AND l.loan_number = ptdb.loan_number
          GROUP BY l.lender_number,
                   lender_payee_code,
                   ptdb.payee_parcel_number,
                   l.loan_number) b,
         (SELECT   /*+ index (l XIE1LOAN) index (lp XPKLOAN_PARCEL) index (ptdb XIE1PTDB_TAX_LINE))*/
                   l.lender_number, lender_payee_code,
                   ptdb.payee_parcel_number, l.loan_number,
                   COUNT (DISTINCT l.loan_number) AS COUNT
              FROM loan l, ptdb_tax_line ptdb
             WHERE l.lender_number in (106,222,472,591,685,708,936)
               AND l.lender_number = ptdb.lender_number
               AND l.loan_number = ptdb.loan_number
               AND l.loan_posting_date > :posteda
               AND l.loan_posting_date < :postedb
               AND SUBSTR (l.match_code, 1, 1) IN ('P', 'Y', 'X')
          GROUP BY l.lender_number,
                   lender_payee_code,
                   ptdb.payee_parcel_number,
                   l.loan_number) c
   WHERE b.lender_number(+) = a.lender_number
     AND c.lender_number(+) = b.lender_number
     AND c.lender_payee_code(+) = b.lender_payee_code
     AND c.loan_number(+) = b.loan_number
     AND c.payee_parcel_number(+) = b.payee_parcel_number
GROUP BY a.COUNT
UNION ALL
SELECT NULL AS "Total Loans Posted", NULL AS "Total Payee & Parcel Matches",
       NULL AS "Total Data Elements", 'ITLS From Analysis Line' AS "Source",
       SUM (e.COUNT) "Loan Volume", 1 "Factor", SUM (e.COUNT) * 1 "Data Elements",
       NULL AS "Rate", SUM (f.COUNT) AS "On Day 1",
       SUM (g.COUNT) "By Day 2", SUM (h.COUNT) "By Day 3",
       SUM (i.COUNT) "By Day 4", SUM (j.COUNT) "By Day 5",
       SUM (k.COUNT) "By Day 6", SUM (l.COUNT) "By Day 7",
       SUM (m.COUNT) "By Day 8", SUM (n.COUNT) "By Day 9",
       SUM (o.COUNT) "By Day 10", SUM (p.COUNT) "By Day 11",
       SUM (q.COUNT) "By Day 12", SUM (r.COUNT) "By Day 13",
       SUM (s.COUNT) "By Day 14", SUM (t.COUNT) "By Day 15",
       SUM (u.COUNT) "By Day 16", SUM (v.COUNT) "By Day 17",
       SUM (w.COUNT) "By Day 18", SUM (x.COUNT) "By Day 19",
       SUM (y.COUNT) "By Day 20", SUM (z.COUNT) "By Day 21",
       SUM (aa.COUNT) "By Day 22", SUM (bb.COUNT) "By Day 23",
       SUM (cc.COUNT) "By Day 24", SUM (dd.COUNT) "By Day 25",
       SUM (ee.COUNT) "By Day 26", SUM (ff.COUNT) "By Day 27",
       SUM (gg.COUNT) "By Day 28", SUM (hh.COUNT) "By Day 29",
       SUM (ii.COUNT) "By Day 30", SUM (ii.COUNT) "By Day 31"
  FROM (SELECT   l.lender_number, COUNT (DISTINCT l.loan_number) AS COUNT
            FROM loan l
           WHERE l.lender_number in (106,222,472,591,685,708,936)
             AND l.loan_posting_date > :posteda
             AND l.loan_posting_date < :postedb
        GROUP BY l.lender_number) d,
       (SELECT   /*+ index (l XIE1LOAN) index (ptdb XIE1PTDB_TAX_LINE))*/
                 l.lender_number, lender_payee_code, ptdb.payee_parcel_number,
                 l.loan_number, COUNT (DISTINCT l.loan_number) AS COUNT
            FROM loan l, ptdb_tax_line ptdb, loan_parcel lp
           WHERE l.lender_number in (106,222,472,591,685,708,936)
             AND l.loan_posting_date > :posteda
             AND l.loan_posting_date < :postedb
             AND l.lender_number = ptdb.lender_number
             AND l.loan_number = ptdb.loan_number
             AND SUBSTR (l.match_code, 1, 1) IN ('P', 'Y', 'X')
                   AND l.lender_number = lp.lender_number (+)
                   AND l.loan_number = lp.loan_number (+)
                   AND lp.lender_number is null
        GROUP BY l.lender_number,
                 lender_payee_code,
                 ptdb.payee_parcel_number,
                 l.loan_number) e,
       (SELECT   /*+ index (l XIE1LOAN) index (lp XPKLOAN_PARCEL) index (ptdb XIE1PTDB_TAX_LINE))*/
                 l.lender_number, ptdb.lender_payee_code,
                 ptdb.payee_parcel_number, l.loan_number,
                 COUNT (DISTINCT l.loan_number) AS COUNT
            FROM loan l, ptdb_tax_line ptdb, loan_parcel lp
           WHERE l.lender_number in (106,222,472,591,685,708,936)
             AND l.lender_number = ptdb.lender_number
             AND l.loan_number = ptdb.loan_number
             AND l.loan_posting_date > :posteda
             AND l.loan_posting_date < :postedb
             AND SUBSTR (l.match_code, 1, 1) IN ('P', 'Y', 'X')
             AND l.lender_number = lp.lender_number (+)
                   AND l.loan_number = lp.loan_number (+)
                   AND lp.lender_number is null
             AND TRUNC (ptdb.last_change_date) - TRUNC (loan_posting_date) < 1
        GROUP BY l.lender_number,
                 lender_payee_code,
                 ptdb.payee_parcel_number,
                 l.loan_number) f,
       (SELECT   /*+ index (l XIE1LOAN) index (lp XPKLOAN_PARCEL) index (ptdb XIE1PTDB_TAX_LINE))*/
                 l.lender_number, ptdb.lender_payee_code,
                 ptdb.payee_parcel_number, l.loan_number,
                 COUNT (DISTINCT l.loan_number) AS COUNT
            FROM loan l, ptdb_tax_line ptdb, loan_parcel lp
           WHERE l.lender_number in (106,222,472,591,685,708,936)
             AND l.lender_number = ptdb.lender_number
             AND l.loan_number = ptdb.loan_number
             AND l.loan_posting_date > :posteda
             AND l.loan_posting_date < :postedb
             AND SUBSTR (l.match_code, 1, 1) IN ('P', 'Y', 'X')
             AND l.lender_number = lp.lender_number (+)
                   AND l.loan_number = lp.loan_number (+)
                   AND lp.lender_number is null
             AND TRUNC (ptdb.last_change_date) - TRUNC (loan_posting_date) < 2
        GROUP BY l.lender_number,
                 lender_payee_code,
                 ptdb.payee_parcel_number,
                 l.loan_number) g,
       (SELECT   /*+ index (l XIE1LOAN) index (lp XPKLOAN_PARCEL) index (ptdb XIE1PTDB_TAX_LINE))*/
                 l.lender_number, ptdb.lender_payee_code,
                 ptdb.payee_parcel_number, l.loan_number,
                 COUNT (DISTINCT l.loan_number) AS COUNT
            FROM loan l, ptdb_tax_line ptdb, loan_parcel lp
           WHERE l.lender_number in (106,222,472,591,685,708,936)
             AND l.lender_number = ptdb.lender_number
             AND l.loan_number = ptdb.loan_number
             AND l.loan_posting_date > :posteda
             AND l.loan_posting_date < :postedb
             AND SUBSTR (l.match_code, 1, 1) IN ('P', 'Y', 'X')
             AND l.lender_number = lp.lender_number (+)
                   AND l.loan_number = lp.loan_number (+)
                   AND lp.lender_number is null
             AND TRUNC (ptdb.last_change_date) - TRUNC (loan_posting_date) < 3
        GROUP BY l.lender_number,
                 lender_payee_code,
                 ptdb.payee_parcel_number,
                 l.loan_number) h,
       (SELECT   /*+ index (l XIE1LOAN) index (lp XPKLOAN_PARCEL) index (ptdb XIE1PTDB_TAX_LINE))*/
                 l.lender_number, ptdb.lender_payee_code,
                 ptdb.payee_parcel_number, l.loan_number,
                 COUNT (DISTINCT l.loan_number) AS COUNT
            FROM loan l, ptdb_tax_line ptdb, loan_parcel lp
           WHERE l.lender_number in (106,222,472,591,685,708,936)
             AND l.lender_number = ptdb.lender_number
             AND l.loan_number = ptdb.loan_number
             AND l.loan_posting_date > :posteda
             AND l.loan_posting_date < :postedb
             AND SUBSTR (l.match_code, 1, 1) IN ('P', 'Y', 'X')
             AND l.lender_number = lp.lender_number (+)
                   AND l.loan_number = lp.loan_number (+)
                   AND lp.lender_number is null
             AND TRUNC (ptdb.last_change_date) - TRUNC (loan_posting_date) < 4
        GROUP BY l.lender_number,
                 lender_payee_code,
                 ptdb.payee_parcel_number,
                 l.loan_number) i,
       (SELECT   /*+ index (l XIE1LOAN) index (lp XPKLOAN_PARCEL) index (ptdb XIE1PTDB_TAX_LINE))*/
                 l.lender_number, ptdb.lender_payee_code,
                 ptdb.payee_parcel_number, l.loan_number,
                 COUNT (DISTINCT l.loan_number) AS COUNT
            FROM loan l, ptdb_tax_line ptdb, loan_parcel lp
           WHERE l.lender_number in (106,222,472,591,685,708,936)
             AND l.lender_number = ptdb.lender_number
             AND l.loan_number = ptdb.loan_number
             AND l.loan_posting_date > :posteda
             AND l.loan_posting_date < :postedb
             AND SUBSTR (l.match_code, 1, 1) IN ('P', 'Y', 'X')
             AND l.lender_number = lp.lender_number (+)
                   AND l.loan_number = lp.loan_number (+)
                   AND lp.lender_number is null
             AND TRUNC (ptdb.last_change_date) - TRUNC (loan_posting_date) < 5
        GROUP BY l.lender_number,
                 lender_payee_code,
                 ptdb.payee_parcel_number,
                 l.loan_number) j,
       (SELECT   /*+ index (l XIE1LOAN) index (lp XPKLOAN_PARCEL) index (ptdb XIE1PTDB_TAX_LINE))*/
                 l.lender_number, ptdb.lender_payee_code,
                 ptdb.payee_parcel_number, l.loan_number,
                 COUNT (DISTINCT l.loan_number) AS COUNT
            FROM loan l, ptdb_tax_line ptdb, loan_parcel lp
           WHERE l.lender_number in (106,222,472,591,685,708,936)
             AND l.lender_number = ptdb.lender_number
             AND l.loan_number = ptdb.loan_number
             AND l.loan_posting_date > :posteda
             AND l.loan_posting_date < :postedb
             AND SUBSTR (l.match_code, 1, 1) IN ('P', 'Y', 'X')
             AND l.lender_number = lp.lender_number (+)
                   AND l.loan_number = lp.loan_number (+)
                   AND lp.lender_number is null
             AND TRUNC (ptdb.last_change_date) - TRUNC (loan_posting_date) < 6
        GROUP BY l.lender_number,
                 lender_payee_code,
                 ptdb.payee_parcel_number,
                 l.loan_number) k,
       (SELECT   /*+ index (l XIE1LOAN) index (lp XPKLOAN_PARCEL) index (ptdb XIE1PTDB_TAX_LINE))*/
                 l.lender_number, ptdb.lender_payee_code,
                 ptdb.payee_parcel_number, l.loan_number,
                 COUNT (DISTINCT l.loan_number) AS COUNT
            FROM loan l, ptdb_tax_line ptdb, loan_parcel lp
           WHERE l.lender_number in (106,222,472,591,685,708,936)
             AND l.lender_number = ptdb.lender_number
             AND l.loan_number = ptdb.loan_number
             AND l.loan_posting_date > :posteda
             AND l.loan_posting_date < :postedb
             AND SUBSTR (l.match_code, 1, 1) IN ('P', 'Y', 'X')
             AND l.lender_number = lp.lender_number (+)
                   AND l.loan_number = lp.loan_number (+)
                   AND lp.lender_number is null
             AND TRUNC (ptdb.last_change_date) - TRUNC (loan_posting_date) < 7
        GROUP BY l.lender_number,
                 lender_payee_code,
                 ptdb.payee_parcel_number,
                 l.loan_number) l,
       (SELECT   /*+ index (l XIE1LOAN) index (lp XPKLOAN_PARCEL) index (ptdb XIE1PTDB_TAX_LINE))*/
                 l.lender_number, ptdb.lender_payee_code,
                 ptdb.payee_parcel_number, l.loan_number,
                 COUNT (DISTINCT l.loan_number) AS COUNT
            FROM loan l, ptdb_tax_line ptdb, loan_parcel lp
           WHERE l.lender_number in (106,222,472,591,685,708,936)
             AND l.lender_number = ptdb.lender_number
             AND l.loan_number = ptdb.loan_number
             AND l.loan_posting_date > :posteda
             AND l.loan_posting_date < :postedb
             AND SUBSTR (l.match_code, 1, 1) IN ('P', 'Y', 'X')
             AND l.lender_number = lp.lender_number (+)
                   AND l.loan_number = lp.loan_number (+)
                   AND lp.lender_number is null
             AND TRUNC (ptdb.last_change_date) - TRUNC (loan_posting_date) < 8
        GROUP BY l.lender_number,
                 lender_payee_code,
                 ptdb.payee_parcel_number,
                 l.loan_number) m,
       (SELECT   /*+ index (l XIE1LOAN) index (lp XPKLOAN_PARCEL) index (ptdb XIE1PTDB_TAX_LINE))*/
                 l.lender_number, ptdb.lender_payee_code,
                 ptdb.payee_parcel_number, l.loan_number,
                 COUNT (DISTINCT l.loan_number) AS COUNT
            FROM loan l, ptdb_tax_line ptdb, loan_parcel lp
           WHERE l.lender_number in (106,222,472,591,685,708,936)
             AND l.lender_number = ptdb.lender_number
             AND l.loan_number = ptdb.loan_number
             AND l.loan_posting_date > :posteda
             AND l.loan_posting_date < :postedb
             AND SUBSTR (l.match_code, 1, 1) IN ('P', 'Y', 'X')
             AND l.lender_number = lp.lender_number (+)
                   AND l.loan_number = lp.loan_number (+)
                   AND lp.lender_number is null
             AND TRUNC (ptdb.last_change_date) - TRUNC (loan_posting_date) < 9
        GROUP BY l.lender_number,
                 lender_payee_code,
                 ptdb.payee_parcel_number,
                 l.loan_number) n,
       (SELECT   /*+ index (l XIE1LOAN) index (lp XPKLOAN_PARCEL) index (ptdb XIE1PTDB_TAX_LINE))*/
                 l.lender_number, ptdb.lender_payee_code,
                 ptdb.payee_parcel_number, l.loan_number,
                 COUNT (DISTINCT l.loan_number) AS COUNT
            FROM loan l, ptdb_tax_line ptdb, loan_parcel lp
           WHERE l.lender_number in (106,222,472,591,685,708,936)
             AND l.lender_number = ptdb.lender_number
             AND l.loan_number = ptdb.loan_number
             AND l.loan_posting_date > :posteda
             AND l.loan_posting_date < :postedb
             AND l.lender_number = lp.lender_number (+)
                   AND l.loan_number = lp.loan_number (+)
                   AND lp.lender_number is null
             AND SUBSTR (l.match_code, 1, 1) IN ('P', 'Y', 'X')
             AND TRUNC (ptdb.last_change_date) - TRUNC (loan_posting_date) <
                                                                            10
        GROUP BY l.lender_number,
                 lender_payee_code,
                 ptdb.payee_parcel_number,
                 l.loan_number) o,
       (SELECT   /*+ index (l XIE1LOAN) index (lp XPKLOAN_PARCEL) index (ptdb XIE1PTDB_TAX_LINE))*/
                 l.lender_number, ptdb.lender_payee_code,
                 ptdb.payee_parcel_number, l.loan_number,
                 COUNT (DISTINCT l.loan_number) AS COUNT
            FROM loan l, ptdb_tax_line ptdb, loan_parcel lp
           WHERE l.lender_number in (106,222,472,591,685,708,936)
             AND l.lender_number = ptdb.lender_number
             AND l.loan_number = ptdb.loan_number
             AND l.loan_posting_date > :posteda
             AND l.loan_posting_date < :postedb
             AND l.lender_number = lp.lender_number (+)
                   AND l.loan_number = lp.loan_number (+)
                   AND lp.lender_number is null
             AND SUBSTR (l.match_code, 1, 1) IN ('P', 'Y', 'X')
             AND TRUNC (ptdb.last_change_date) - TRUNC (loan_posting_date) <
                                                                            11
        GROUP BY l.lender_number,
                 lender_payee_code,
                 ptdb.payee_parcel_number,
                 l.loan_number) p,
       (SELECT   /*+ index (l XIE1LOAN) index (lp XPKLOAN_PARCEL) index (ptdb XIE1PTDB_TAX_LINE))*/
                 l.lender_number, ptdb.lender_payee_code,
                 ptdb.payee_parcel_number, l.loan_number,
                 COUNT (DISTINCT l.loan_number) AS COUNT
            FROM loan l, ptdb_tax_line ptdb, loan_parcel lp
           WHERE l.lender_number in (106,222,472,591,685,708,936)
             AND l.lender_number = ptdb.lender_number
             AND l.loan_number = ptdb.loan_number
             AND l.loan_posting_date > :posteda
             AND l.loan_posting_date < :postedb
             AND l.lender_number = lp.lender_number (+)
                   AND l.loan_number = lp.loan_number (+)
                   AND lp.lender_number is null
             AND SUBSTR (l.match_code, 1, 1) IN ('P', 'Y', 'X')
             AND TRUNC (ptdb.last_change_date) - TRUNC (loan_posting_date) <
                                                                            12
        GROUP BY l.lender_number,
                 lender_payee_code,
                 ptdb.payee_parcel_number,
                 l.loan_number) q,
       (SELECT   /*+ index (l XIE1LOAN) index (lp XPKLOAN_PARCEL) index (ptdb XIE1PTDB_TAX_LINE))*/
                 l.lender_number, ptdb.lender_payee_code,
                 ptdb.payee_parcel_number, l.loan_number,
                 COUNT (DISTINCT l.loan_number) AS COUNT
            FROM loan l, ptdb_tax_line ptdb, loan_parcel lp
           WHERE l.lender_number in (106,222,472,591,685,708,936)
             AND l.lender_number = ptdb.lender_number
             AND l.loan_number = ptdb.loan_number
             AND l.loan_posting_date > :posteda
             AND l.loan_posting_date < :postedb
             AND l.lender_number = lp.lender_number (+)
                   AND l.loan_number = lp.loan_number (+)
                   AND lp.lender_number is null
             AND SUBSTR (l.match_code, 1, 1) IN ('P', 'Y', 'X')
             AND TRUNC (ptdb.last_change_date) - TRUNC (loan_posting_date) <
                                                                            13
        GROUP BY l.lender_number,
                 lender_payee_code,
                 ptdb.payee_parcel_number,
                 l.loan_number) r,
       (SELECT   /*+ index (l XIE1LOAN) index (lp XPKLOAN_PARCEL) index (ptdb XIE1PTDB_TAX_LINE))*/
                 l.lender_number, ptdb.lender_payee_code,
                 ptdb.payee_parcel_number, l.loan_number,
                 COUNT (DISTINCT l.loan_number) AS COUNT
            FROM loan l, ptdb_tax_line ptdb, loan_parcel lp
           WHERE l.lender_number in (106,222,472,591,685,708,936)
             AND l.lender_number = ptdb.lender_number
             AND l.loan_number = ptdb.loan_number
             AND l.loan_posting_date > :posteda
             AND l.loan_posting_date < :postedb
             AND l.lender_number = lp.lender_number (+)
                   AND l.loan_number = lp.loan_number (+)
                   AND lp.lender_number is null
             AND SUBSTR (l.match_code, 1, 1) IN ('P', 'Y', 'X')
             AND TRUNC (ptdb.last_change_date) - TRUNC (loan_posting_date) <
                                                                            14
        GROUP BY l.lender_number,
                 lender_payee_code,
                 ptdb.payee_parcel_number,
                 l.loan_number) s,
       (SELECT   /*+ index (l XIE1LOAN) index (lp XPKLOAN_PARCEL) index (ptdb XIE1PTDB_TAX_LINE))*/
                 l.lender_number, ptdb.lender_payee_code,
                 ptdb.payee_parcel_number, l.loan_number,
                 COUNT (DISTINCT l.loan_number) AS COUNT
            FROM loan l, ptdb_tax_line ptdb, loan_parcel lp
           WHERE l.lender_number in (106,222,472,591,685,708,936)
             AND l.lender_number = ptdb.lender_number
             AND l.loan_number = ptdb.loan_number
             AND l.loan_posting_date > :posteda
             AND l.loan_posting_date < :postedb
             AND l.lender_number = lp.lender_number (+)
                   AND l.loan_number = lp.loan_number (+)
                   AND lp.lender_number is null
             AND SUBSTR (l.match_code, 1, 1) IN ('P', 'Y', 'X')
             AND TRUNC (ptdb.last_change_date) - TRUNC (loan_posting_date) <
                                                                            15
        GROUP BY l.lender_number,
                 lender_payee_code,
                 ptdb.payee_parcel_number,
                 l.loan_number) t,
       (SELECT   /*+ index (l XIE1LOAN) index (lp XPKLOAN_PARCEL) index (ptdb XIE1PTDB_TAX_LINE))*/
                 l.lender_number, ptdb.lender_payee_code,
                 ptdb.payee_parcel_number, l.loan_number,
                 COUNT (DISTINCT l.loan_number) AS COUNT
            FROM loan l, ptdb_tax_line ptdb, loan_parcel lp
           WHERE l.lender_number in (106,222,472,591,685,708,936)
             AND l.lender_number = ptdb.lender_number
             AND l.loan_number = ptdb.loan_number
             AND l.loan_posting_date > :posteda
             AND l.loan_posting_date < :postedb
             AND l.lender_number = lp.lender_number (+)
                   AND l.loan_number = lp.loan_number (+)
                   AND lp.lender_number is null
             AND SUBSTR (l.match_code, 1, 1) IN ('P', 'Y', 'X')
             AND TRUNC (ptdb.last_change_date) - TRUNC (loan_posting_date) <
                                                                            16
        GROUP BY l.lender_number,
                 lender_payee_code,
                 ptdb.payee_parcel_number,
                 l.loan_number) u,
       (SELECT   /*+ index (l XIE1LOAN) index (lp XPKLOAN_PARCEL) index (ptdb XIE1PTDB_TAX_LINE))*/
                 l.lender_number, ptdb.lender_payee_code,
                 ptdb.payee_parcel_number, l.loan_number,
                 COUNT (DISTINCT l.loan_number) AS COUNT
            FROM loan l, ptdb_tax_line ptdb, loan_parcel lp
           WHERE l.lender_number in (106,222,472,591,685,708,936)
             AND l.lender_number = ptdb.lender_number
             AND l.loan_number = ptdb.loan_number
             AND l.loan_posting_date > :posteda
             AND l.loan_posting_date < :postedb
             AND l.lender_number = lp.lender_number (+)
                   AND l.loan_number = lp.loan_number (+)
                   AND lp.lender_number is null
             AND SUBSTR (l.match_code, 1, 1) IN ('P', 'Y', 'X')
             AND TRUNC (ptdb.last_change_date) - TRUNC (loan_posting_date) <
                                                                            17
        GROUP BY l.lender_number,
                 lender_payee_code,
                 ptdb.payee_parcel_number,
                 l.loan_number) v,
       (SELECT   /*+ index (l XIE1LOAN) index (lp XPKLOAN_PARCEL) index (ptdb XIE1PTDB_TAX_LINE))*/
                 l.lender_number, ptdb.lender_payee_code,
                 ptdb.payee_parcel_number, l.loan_number,
                 COUNT (DISTINCT l.loan_number) AS COUNT
            FROM loan l, ptdb_tax_line ptdb, loan_parcel lp
           WHERE l.lender_number in (106,222,472,591,685,708,936)
             AND l.lender_number = ptdb.lender_number
             AND l.loan_number = ptdb.loan_number
             AND l.loan_posting_date > :posteda
             AND l.loan_posting_date < :postedb
            AND l.lender_number = lp.lender_number (+)
                   AND l.loan_number = lp.loan_number (+)
                   AND lp.lender_number is null
             AND SUBSTR (l.match_code, 1, 1) IN ('P', 'Y', 'X')
             AND TRUNC (ptdb.last_change_date) - TRUNC (loan_posting_date) <
                                                                            18
        GROUP BY l.lender_number,
                 lender_payee_code,
                 ptdb.payee_parcel_number,
                 l.loan_number) w,
       (SELECT   /*+ index (l XIE1LOAN) index (lp XPKLOAN_PARCEL) index (ptdb XIE1PTDB_TAX_LINE))*/
                 l.lender_number, ptdb.lender_payee_code,
                 ptdb.payee_parcel_number, l.loan_number,
                 COUNT (DISTINCT l.loan_number) AS COUNT
            FROM loan l, ptdb_tax_line ptdb, loan_parcel lp
           WHERE l.lender_number in (106,222,472,591,685,708,936)
             AND l.lender_number = ptdb.lender_number
             AND l.loan_number = ptdb.loan_number
             AND l.loan_posting_date > :posteda
             AND l.loan_posting_date < :postedb
             AND l.lender_number = lp.lender_number (+)
                   AND l.loan_number = lp.loan_number (+)
                   AND lp.lender_number is null
             AND SUBSTR (l.match_code, 1, 1) IN ('P', 'Y', 'X')
             AND TRUNC (ptdb.last_change_date) - TRUNC (loan_posting_date) <
                                                                            19
        GROUP BY l.lender_number,
                 lender_payee_code,
                 ptdb.payee_parcel_number,
                 l.loan_number) x,
       (SELECT   /*+ index (l XIE1LOAN) index (lp XPKLOAN_PARCEL) index (ptdb XIE1PTDB_TAX_LINE))*/
                 l.lender_number, ptdb.lender_payee_code,
                 ptdb.payee_parcel_number, l.loan_number,
                 COUNT (DISTINCT l.loan_number) AS COUNT
            FROM loan l, ptdb_tax_line ptdb, loan_parcel lp
           WHERE l.lender_number in (106,222,472,591,685,708,936)
             AND l.lender_number = ptdb.lender_number
             AND l.loan_number = ptdb.loan_number
             AND l.loan_posting_date > :posteda
             AND l.loan_posting_date < :postedb
             AND l.lender_number = lp.lender_number (+)
                   AND l.loan_number = lp.loan_number (+)
                   AND lp.lender_number is null
             AND SUBSTR (l.match_code, 1, 1) IN ('P', 'Y', 'X')
             AND TRUNC (ptdb.last_change_date) - TRUNC (loan_posting_date) <
                                                                            20
        GROUP BY l.lender_number,
                 lender_payee_code,
                 ptdb.payee_parcel_number,
                 l.loan_number) y,
       (SELECT   /*+ index (l XIE1LOAN) index (lp XPKLOAN_PARCEL) index (ptdb XIE1PTDB_TAX_LINE))*/
                 l.lender_number, ptdb.lender_payee_code,
                 ptdb.payee_parcel_number, l.loan_number,
                 COUNT (DISTINCT l.loan_number) AS COUNT
            FROM loan l, ptdb_tax_line ptdb, loan_parcel lp
           WHERE l.lender_number in (106,222,472,591,685,708,936)
             AND l.lender_number = ptdb.lender_number
             AND l.loan_number = ptdb.loan_number
             AND l.loan_posting_date > :posteda
             AND l.loan_posting_date < :postedb
             AND l.lender_number = lp.lender_number (+)
                   AND l.loan_number = lp.loan_number (+)
                   AND lp.lender_number is null
             AND SUBSTR (l.match_code, 1, 1) IN ('P', 'Y', 'X')
             AND TRUNC (ptdb.last_change_date) - TRUNC (loan_posting_date) <
                                                                            21
        GROUP BY l.lender_number,
                 lender_payee_code,
                 ptdb.payee_parcel_number,
                 l.loan_number) z,
       (SELECT   /*+ index (l XIE1LOAN) index (lp XPKLOAN_PARCEL) index (ptdb XIE1PTDB_TAX_LINE))*/
                 l.lender_number, ptdb.lender_payee_code,
                 ptdb.payee_parcel_number, l.loan_number,
                 COUNT (DISTINCT l.loan_number) AS COUNT
            FROM loan l, ptdb_tax_line ptdb, loan_parcel lp
           WHERE l.lender_number in (106,222,472,591,685,708,936)
             AND l.lender_number = ptdb.lender_number
             AND l.loan_number = ptdb.loan_number
             AND l.loan_posting_date > :posteda
             AND l.loan_posting_date < :postedb
             AND l.lender_number = lp.lender_number (+)
                   AND l.loan_number = lp.loan_number (+)
                   AND lp.lender_number is null
             AND SUBSTR (l.match_code, 1, 1) IN ('P', 'Y', 'X')
             AND TRUNC (ptdb.last_change_date) - TRUNC (loan_posting_date) <
                                                                            22
        GROUP BY l.lender_number,
                 lender_payee_code,
                 ptdb.payee_parcel_number,
                 l.loan_number) aa,
       (SELECT   /*+ index (l XIE1LOAN) index (lp XPKLOAN_PARCEL) index (ptdb XIE1PTDB_TAX_LINE))*/
                 l.lender_number, ptdb.lender_payee_code,
                 ptdb.payee_parcel_number, l.loan_number,
                 COUNT (DISTINCT l.loan_number) AS COUNT
            FROM loan l, ptdb_tax_line ptdb, loan_parcel lp
           WHERE l.lender_number in (106,222,472,591,685,708,936)
             AND l.lender_number = ptdb.lender_number
             AND l.loan_number = ptdb.loan_number
             AND l.loan_posting_date > :posteda
             AND l.loan_posting_date < :postedb
             AND l.lender_number = lp.lender_number (+)
                   AND l.loan_number = lp.loan_number (+)
                   AND lp.lender_number is null
             AND SUBSTR (l.match_code, 1, 1) IN ('P', 'Y', 'X')
             AND TRUNC (ptdb.last_change_date) - TRUNC (loan_posting_date) <
                                                                            23
        GROUP BY l.lender_number,
                 lender_payee_code,
                 ptdb.payee_parcel_number,
                 l.loan_number) bb,
       (SELECT   /*+ index (l XIE1LOAN) index (lp XPKLOAN_PARCEL) index (ptdb XIE1PTDB_TAX_LINE))*/
                 l.lender_number, ptdb.lender_payee_code,
                 ptdb.payee_parcel_number, l.loan_number,
                 COUNT (DISTINCT l.loan_number) AS COUNT
            FROM loan l, ptdb_tax_line ptdb, loan_parcel lp
           WHERE l.lender_number in (106,222,472,591,685,708,936)
             AND l.lender_number = ptdb.lender_number
             AND l.loan_number = ptdb.loan_number
             AND l.loan_posting_date > :posteda
             AND l.loan_posting_date < :postedb
             AND l.lender_number = lp.lender_number (+)
                   AND l.loan_number = lp.loan_number (+)
                   AND lp.lender_number is null
             AND SUBSTR (l.match_code, 1, 1) IN ('P', 'Y', 'X')
             AND TRUNC (ptdb.last_change_date) - TRUNC (loan_posting_date) <
                                                                            24
        GROUP BY l.lender_number,
                 lender_payee_code,
                 ptdb.payee_parcel_number,
                 l.loan_number) cc,
       (SELECT   /*+ index (l XIE1LOAN) index (lp XPKLOAN_PARCEL) index (ptdb XIE1PTDB_TAX_LINE))*/
                 l.lender_number, ptdb.lender_payee_code,
                 ptdb.payee_parcel_number, l.loan_number,
                 COUNT (DISTINCT l.loan_number) AS COUNT
            FROM loan l, ptdb_tax_line ptdb, loan_parcel lp
           WHERE l.lender_number in (106,222,472,591,685,708,936)
             AND l.lender_number = ptdb.lender_number
             AND l.loan_number = ptdb.loan_number
             AND l.loan_posting_date > :posteda
             AND l.loan_posting_date < :postedb
             AND l.lender_number = lp.lender_number (+)
                   AND l.loan_number = lp.loan_number (+)
                   AND lp.lender_number is null
             AND SUBSTR (l.match_code, 1, 1) IN ('P', 'Y', 'X')
             AND TRUNC (ptdb.last_change_date) - TRUNC (loan_posting_date) <
                                                                            25
        GROUP BY l.lender_number,
                 lender_payee_code,
                 ptdb.payee_parcel_number,
                 l.loan_number) dd,
       (SELECT   /*+ index (l XIE1LOAN) index (lp XPKLOAN_PARCEL) index (ptdb XIE1PTDB_TAX_LINE))*/
                 l.lender_number, ptdb.lender_payee_code,
                 ptdb.payee_parcel_number, l.loan_number,
                 COUNT (DISTINCT l.loan_number) AS COUNT
            FROM loan l, ptdb_tax_line ptdb, loan_parcel lp
           WHERE l.lender_number in (106,222,472,591,685,708,936)
             AND l.lender_number = ptdb.lender_number
             AND l.loan_number = ptdb.loan_number
             AND l.loan_posting_date > :posteda
             AND l.loan_posting_date < :postedb
             AND l.lender_number = lp.lender_number (+)
                   AND l.loan_number = lp.loan_number (+)
                   AND lp.lender_number is null
             AND SUBSTR (l.match_code, 1, 1) IN ('P', 'Y', 'X')
             AND TRUNC (ptdb.last_change_date) - TRUNC (loan_posting_date) <
                                                                            26
        GROUP BY l.lender_number,
                 lender_payee_code,
                 ptdb.payee_parcel_number,
                 l.loan_number) ee,
       (SELECT   /*+ index (l XIE1LOAN) index (lp XPKLOAN_PARCEL) index (ptdb XIE1PTDB_TAX_LINE))*/
                 l.lender_number, ptdb.lender_payee_code,
                 ptdb.payee_parcel_number, l.loan_number,
                 COUNT (DISTINCT l.loan_number) AS COUNT
            FROM loan l, ptdb_tax_line ptdb, loan_parcel lp
           WHERE l.lender_number in (106,222,472,591,685,708,936)
             AND l.lender_number = ptdb.lender_number
             AND l.loan_number = ptdb.loan_number
             AND l.loan_posting_date > :posteda
             AND l.loan_posting_date < :postedb
            AND l.lender_number = lp.lender_number (+)
                   AND l.loan_number = lp.loan_number (+)
                   AND lp.lender_number is null
             AND SUBSTR (l.match_code, 1, 1) IN ('P', 'Y', 'X')
             AND TRUNC (ptdb.last_change_date) - TRUNC (loan_posting_date) <
                                                                            27
        GROUP BY l.lender_number,
                 lender_payee_code,
                 ptdb.payee_parcel_number,
                 l.loan_number) ff,
       (SELECT   /*+ index (l XIE1LOAN) index (lp XPKLOAN_PARCEL) index (ptdb XIE1PTDB_TAX_LINE))*/
                 l.lender_number, ptdb.lender_payee_code,
                 ptdb.payee_parcel_number, l.loan_number,
                 COUNT (DISTINCT l.loan_number) AS COUNT
            FROM loan l, ptdb_tax_line ptdb, loan_parcel lp
           WHERE l.lender_number in (106,222,472,591,685,708,936)
             AND l.lender_number = ptdb.lender_number
             AND l.loan_number = ptdb.loan_number
             AND l.loan_posting_date > :posteda
             AND l.loan_posting_date < :postedb
             AND l.lender_number = lp.lender_number (+)
                   AND l.loan_number = lp.loan_number (+)
                   AND lp.lender_number is null
             AND SUBSTR (l.match_code, 1, 1) IN ('P', 'Y', 'X')
             AND TRUNC (ptdb.last_change_date) - TRUNC (loan_posting_date) <
                                                                            28
        GROUP BY l.lender_number,
                 lender_payee_code,
                 ptdb.payee_parcel_number,
                 l.loan_number) gg,
       (SELECT   /*+ index (l XIE1LOAN) index (lp XPKLOAN_PARCEL) index (ptdb XIE1PTDB_TAX_LINE))*/
                 l.lender_number, ptdb.lender_payee_code,
                 ptdb.payee_parcel_number, l.loan_number,
                 COUNT (DISTINCT l.loan_number) AS COUNT
            FROM loan l, ptdb_tax_line ptdb, loan_parcel lp
           WHERE l.lender_number in (106,222,472,591,685,708,936)
             AND l.lender_number = ptdb.lender_number
             AND l.loan_number = ptdb.loan_number
             AND l.loan_posting_date > :posteda
             AND l.loan_posting_date < :postedb
             AND l.lender_number = lp.lender_number (+)
                   AND l.loan_number = lp.loan_number (+)
                   AND lp.lender_number is null
             AND SUBSTR (l.match_code, 1, 1) IN ('P', 'Y', 'X')
             AND TRUNC (ptdb.last_change_date) - TRUNC (loan_posting_date) <
                                                                            29
        GROUP BY l.lender_number,
                 lender_payee_code,
                 ptdb.payee_parcel_number,
                 l.loan_number) hh,
       (SELECT   /*+ index (l XIE1LOAN) index (lp XPKLOAN_PARCEL) index (ptdb XIE1PTDB_TAX_LINE))*/
                 l.lender_number, ptdb.lender_payee_code,
                 ptdb.payee_parcel_number, l.loan_number,
                 COUNT (DISTINCT l.loan_number) AS COUNT
            FROM loan l, ptdb_tax_line ptdb, loan_parcel lp
           WHERE l.lender_number in (106,222,472,591,685,708,936)
             AND l.lender_number = ptdb.lender_number
             AND l.loan_number = ptdb.loan_number
             AND l.loan_posting_date > :posteda
             AND l.loan_posting_date < :postedb
             AND l.lender_number = lp.lender_number (+)
                   AND l.loan_number = lp.loan_number (+)
                   AND lp.lender_number is null
             AND SUBSTR (l.match_code, 1, 1) IN ('P', 'Y', 'X')
             AND TRUNC (ptdb.last_change_date) - TRUNC (loan_posting_date) <
                                                                            30
        GROUP BY l.lender_number,
                 lender_payee_code,
                 ptdb.payee_parcel_number,
                 l.loan_number) ii,
       (SELECT   /*+ index (l XIE1LOAN) index (lp XPKLOAN_PARCEL) index (ptdb XIE1PTDB_TAX_LINE))*/
                 l.lender_number, ptdb.lender_payee_code,
                 ptdb.payee_parcel_number, l.loan_number,
                 COUNT (DISTINCT l.loan_number) AS COUNT
            FROM loan l, ptdb_tax_line ptdb, loan_parcel lp
           WHERE l.lender_number in (106,222,472,591,685,708,936)
             AND l.lender_number = ptdb.lender_number
             AND l.loan_number = ptdb.loan_number
             AND l.loan_posting_date > :posteda
             AND l.loan_posting_date < :postedb
             AND l.lender_number = lp.lender_number (+)
                   AND l.loan_number = lp.loan_number (+)
                   AND lp.lender_number is null
             AND SUBSTR (l.match_code, 1, 1) IN ('P', 'Y', 'X')
             AND TRUNC (ptdb.last_change_date) - TRUNC (loan_posting_date) <
                                                                            31
        GROUP BY l.lender_number,
                 lender_payee_code,
                 ptdb.payee_parcel_number,
                 l.loan_number) jj
 WHERE e.lender_number(+) = d.lender_number
   AND f.lender_number(+) = e.lender_number
   AND f.lender_payee_code(+) = e.lender_payee_code
   AND f.payee_parcel_number(+) = e.payee_parcel_number
   AND f.loan_number(+) = e.loan_number
   AND g.lender_number(+) = e.lender_number
   AND g.lender_payee_code(+) = e.lender_payee_code
   AND g.payee_parcel_number(+) = e.payee_parcel_number
   AND g.loan_number(+) = e.loan_number
   AND h.lender_number(+) = e.lender_number
   AND h.lender_payee_code(+) = e.lender_payee_code
   AND h.payee_parcel_number(+) = e.payee_parcel_number
   AND h.loan_number(+) = e.loan_number
   AND i.lender_number(+) = e.lender_number
   AND i.lender_payee_code(+) = e.lender_payee_code
   AND i.payee_parcel_number(+) = e.payee_parcel_number
   AND i.loan_number(+) = e.loan_number
   AND j.lender_number(+) = e.lender_number
   AND j.lender_payee_code(+) = e.lender_payee_code
   AND j.payee_parcel_number(+) = e.payee_parcel_number
   AND j.loan_number(+) = e.loan_number
   AND k.lender_number(+) = e.lender_number
   AND k.lender_payee_code(+) = e.lender_payee_code
   AND k.payee_parcel_number(+) = e.payee_parcel_number
   AND k.loan_number(+) = e.loan_number
   AND l.lender_number(+) = e.lender_number
   AND l.lender_payee_code(+) = e.lender_payee_code
   AND l.payee_parcel_number(+) = e.payee_parcel_number
   AND l.loan_number(+) = e.loan_number
   AND m.lender_number(+) = e.lender_number
   AND m.lender_payee_code(+) = e.lender_payee_code
   AND m.payee_parcel_number(+) = e.payee_parcel_number
   AND m.loan_number(+) = e.loan_number
   AND n.lender_number(+) = e.lender_number
   AND n.lender_payee_code(+) = e.lender_payee_code
   AND n.payee_parcel_number(+) = e.payee_parcel_number
   AND n.loan_number(+) = e.loan_number
   AND o.lender_number(+) = e.lender_number
   AND o.lender_payee_code(+) = e.lender_payee_code
   AND o.payee_parcel_number(+) = e.payee_parcel_number
   AND o.loan_number(+) = e.loan_number
   AND p.lender_number(+) = e.lender_number
   AND p.lender_payee_code(+) = e.lender_payee_code
   AND p.payee_parcel_number(+) = e.payee_parcel_number
   AND p.loan_number(+) = e.loan_number
   AND q.lender_number(+) = e.lender_number
   AND q.lender_payee_code(+) = e.lender_payee_code
   AND q.payee_parcel_number(+) = e.payee_parcel_number
   AND q.loan_number(+) = e.loan_number
   AND r.lender_number(+) = e.lender_number
   AND r.lender_payee_code(+) = e.lender_payee_code
   AND r.payee_parcel_number(+) = e.payee_parcel_number
   AND r.loan_number(+) = e.loan_number
   AND s.lender_number(+) = e.lender_number
   AND s.lender_payee_code(+) = e.lender_payee_code
   AND s.payee_parcel_number(+) = e.payee_parcel_number
   AND s.loan_number(+) = e.loan_number
   AND t.lender_number(+) = e.lender_number
   AND t.lender_payee_code(+) = e.lender_payee_code
   AND t.payee_parcel_number(+) = e.payee_parcel_number
   AND t.loan_number(+) = e.loan_number
   AND u.lender_number(+) = e.lender_number
   AND u.lender_payee_code(+) = e.lender_payee_code
   AND u.payee_parcel_number(+) = e.payee_parcel_number
   AND u.loan_number(+) = e.loan_number
   AND v.lender_number(+) = e.lender_number
   AND v.lender_payee_code(+) = e.lender_payee_code
   AND v.payee_parcel_number(+) = e.payee_parcel_number
   AND v.loan_number(+) = e.loan_number
   AND w.lender_number(+) = e.lender_number
   AND w.lender_payee_code(+) = e.lender_payee_code
   AND w.payee_parcel_number(+) = e.payee_parcel_number
   AND w.loan_number(+) = e.loan_number
   AND x.lender_number(+) = e.lender_number
   AND x.lender_payee_code(+) = e.lender_payee_code
   AND x.payee_parcel_number(+) = e.payee_parcel_number
   AND x.loan_number(+) = e.loan_number
   AND y.lender_number(+) = e.lender_number
   AND y.lender_payee_code(+) = e.lender_payee_code
   AND y.payee_parcel_number(+) = e.payee_parcel_number
   AND y.loan_number(+) = e.loan_number
   AND z.lender_number(+) = e.lender_number
   AND z.lender_payee_code(+) = e.lender_payee_code
   AND z.payee_parcel_number(+) = e.payee_parcel_number
   AND z.loan_number(+) = e.loan_number
   AND aa.lender_number(+) = e.lender_number
   AND aa.lender_payee_code(+) = e.lender_payee_code
   AND aa.payee_parcel_number(+) = e.payee_parcel_number
   AND aa.loan_number(+) = e.loan_number
   AND bb.lender_number(+) = e.lender_number
   AND bb.lender_payee_code(+) = e.lender_payee_code
   AND bb.payee_parcel_number(+) = e.payee_parcel_number
   AND bb.loan_number(+) = e.loan_number
   AND cc.lender_number(+) = e.lender_number
   AND cc.lender_payee_code(+) = e.lender_payee_code
   AND cc.payee_parcel_number(+) = e.payee_parcel_number
   AND cc.loan_number(+) = e.loan_number
   AND dd.lender_number(+) = e.lender_number
   AND dd.lender_payee_code(+) = e.lender_payee_code
   AND dd.payee_parcel_number(+) = e.payee_parcel_number
   AND dd.loan_number(+) = e.loan_number
   AND ee.lender_number(+) = e.lender_number
   AND ee.lender_payee_code(+) = e.lender_payee_code
   AND ee.payee_parcel_number(+) = e.payee_parcel_number
   AND ee.loan_number(+) = e.loan_number
   AND ff.lender_number(+) = e.lender_number
   AND ff.lender_payee_code(+) = e.lender_payee_code
   AND ff.payee_parcel_number(+) = e.payee_parcel_number
   AND ff.loan_number(+) = e.loan_number
   AND gg.lender_number(+) = e.lender_number
   AND gg.lender_payee_code(+) = e.lender_payee_code
   AND gg.payee_parcel_number(+) = e.payee_parcel_number
   AND gg.loan_number(+) = e.loan_number
   AND hh.lender_number(+) = e.lender_number
   AND hh.lender_payee_code(+) = e.lender_payee_code
   AND hh.payee_parcel_number(+) = e.payee_parcel_number
   AND hh.loan_number(+) = e.loan_number
   AND ii.lender_number(+) = e.lender_number
   AND ii.lender_payee_code(+) = e.lender_payee_code
   AND ii.payee_parcel_number(+) = e.payee_parcel_number
   AND ii.loan_number(+) = e.loan_number
   AND jj.lender_number(+) = e.lender_number
   AND jj.lender_payee_code(+) = e.lender_payee_code
   AND jj.payee_parcel_number(+) = e.payee_parcel_number
   AND jj.loan_number(+) = e.loan_number
UNION ALL
SELECT NULL AS "Total Loans Posted", NULL AS "Total Payee & Parcel Matches",
       NULL AS "Total Data Elements", 'ITLS Payee & Parcel' AS "Source",
       SUM (e.COUNT) "Loan Volume", 2 AS "Factor", SUM (e.COUNT) * 2 "Data Elements",
       NULL AS "Rate", SUM (f.COUNT) AS "On Day 1",
       SUM (g.COUNT) "By Day 2", SUM (h.COUNT) "By Day 3",
       SUM (i.COUNT) "By Day 4", SUM (j.COUNT) "By Day 5",
       SUM (k.COUNT) "By Day 6", SUM (l.COUNT) "By Day 7",
       SUM (m.COUNT) "By Day 8", SUM (n.COUNT) "By Day 9",
       SUM (o.COUNT) "By Day 10", SUM (p.COUNT) "By Day 11",
       SUM (q.COUNT) "By Day 12", SUM (r.COUNT) "By Day 13",
       SUM (s.COUNT) "By Day 14", SUM (t.COUNT) "By Day 15",
       SUM (u.COUNT) "By Day 16", SUM (v.COUNT) "By Day 17",
       SUM (w.COUNT) "By Day 18", SUM (x.COUNT) "By Day 19",
       SUM (y.COUNT) "By Day 20", SUM (z.COUNT) "By Day 21",
       SUM (aa.COUNT) "By Day 22", SUM (bb.COUNT) "By Day 23",
       SUM (cc.COUNT) "By Day 24", SUM (dd.COUNT) "By Day 25",
       SUM (ee.COUNT) "By Day 26", SUM (ff.COUNT) "By Day 27",
       SUM (gg.COUNT) "By Day 28", SUM (hh.COUNT) "By Day 29",
       SUM (ii.COUNT) "By Day 30", SUM (ii.COUNT) "By Day 31"
  FROM (SELECT   l.lender_number, COUNT (DISTINCT l.loan_number) AS COUNT
            FROM loan l
           WHERE l.lender_number in (106,222,472,591,685,708,936)
             AND l.loan_posting_date > :posteda
             AND l.loan_posting_date < :postedb
        GROUP BY l.lender_number) d,
       (SELECT   /*+ index (l XIE1LOAN) index (ptdb XIE1PTDB_TAX_LINE))*/
                 l.lender_number, lender_payee_code, ptdb.payee_parcel_number,
                 l.loan_number, COUNT (DISTINCT l.loan_number) AS COUNT
            FROM loan l, ptdb_tax_line ptdb, loan_parcel lp
           WHERE l.lender_number in (106,222,472,591,685,708,936)
             AND l.loan_posting_date > :posteda
             AND l.loan_posting_date < :postedb
             AND l.lender_number = ptdb.lender_number
             AND l.loan_number = ptdb.loan_number
                   AND SUBSTR (l.match_code, 1, 1) NOT IN ('P', 'Y', 'X')
             AND l.lender_number = lp.lender_number (+)
                   AND l.loan_number = lp.loan_number (+)
                   AND lp.lender_number is null
        GROUP BY l.lender_number,
                 lender_payee_code,
                 ptdb.payee_parcel_number,
                 l.loan_number) e,
       (SELECT   /*+ index (l XIE1LOAN) index (lp XPKLOAN_PARCEL) index (ptdb XIE1PTDB_TAX_LINE))*/
                 l.lender_number, ptdb.lender_payee_code,
                 ptdb.payee_parcel_number, l.loan_number,
                 COUNT (DISTINCT l.loan_number) AS COUNT
            FROM loan l, ptdb_tax_line ptdb, loan_parcel lp
           WHERE l.lender_number in (106,222,472,591,685,708,936)
             AND l.lender_number = ptdb.lender_number
             AND l.loan_number = ptdb.loan_number
                   AND SUBSTR (l.match_code, 1, 1) NOT IN ('P', 'Y', 'X')
             AND l.loan_posting_date > :posteda
             AND l.loan_posting_date < :postedb
             AND l.lender_number = lp.lender_number (+)
                   AND l.loan_number = lp.loan_number (+)
                   AND lp.lender_number is null
             AND TRUNC (ptdb.last_change_date) - TRUNC (loan_posting_date) < 1
        GROUP BY l.lender_number,
                 lender_payee_code,
                 ptdb.payee_parcel_number,
                 l.loan_number) f,
       (SELECT   /*+ index (l XIE1LOAN) index (lp XPKLOAN_PARCEL) index (ptdb XIE1PTDB_TAX_LINE))*/
                 l.lender_number, ptdb.lender_payee_code,
                 ptdb.payee_parcel_number, l.loan_number,
                 COUNT (DISTINCT l.loan_number) AS COUNT
            FROM loan l, ptdb_tax_line ptdb, loan_parcel lp
           WHERE l.lender_number in (106,222,472,591,685,708,936)
             AND l.lender_number = ptdb.lender_number
             AND l.loan_number = ptdb.loan_number
                   AND SUBSTR (l.match_code, 1, 1) NOT IN ('P', 'Y', 'X')
             AND l.loan_posting_date > :posteda
             AND l.loan_posting_date < :postedb
             AND l.lender_number = lp.lender_number (+)
                   AND l.loan_number = lp.loan_number (+)
                   AND lp.lender_number is null
             AND TRUNC (ptdb.last_change_date) - TRUNC (loan_posting_date) < 2
        GROUP BY l.lender_number,
                 lender_payee_code,
                 ptdb.payee_parcel_number,
                 l.loan_number) g,
       (SELECT   /*+ index (l XIE1LOAN) index (lp XPKLOAN_PARCEL) index (ptdb XIE1PTDB_TAX_LINE))*/
                 l.lender_number, ptdb.lender_payee_code,
                 ptdb.payee_parcel_number, l.loan_number,
                 COUNT (DISTINCT l.loan_number) AS COUNT
            FROM loan l, ptdb_tax_line ptdb, loan_parcel lp
           WHERE l.lender_number in (106,222,472,591,685,708,936)
             AND l.lender_number = ptdb.lender_number
             AND l.loan_number = ptdb.loan_number
                   AND SUBSTR (l.match_code, 1, 1) NOT IN ('P', 'Y', 'X')
             AND l.loan_posting_date > :posteda
             AND l.loan_posting_date < :postedb
             AND l.lender_number = lp.lender_number (+)
                   AND l.loan_number = lp.loan_number (+)
                   AND lp.lender_number is null
             AND TRUNC (ptdb.last_change_date) - TRUNC (loan_posting_date) < 3
        GROUP BY l.lender_number,
                 lender_payee_code,
                 ptdb.payee_parcel_number,
                 l.loan_number) h,
       (SELECT   /*+ index (l XIE1LOAN) index (lp XPKLOAN_PARCEL) index (ptdb XIE1PTDB_TAX_LINE))*/
                 l.lender_number, ptdb.lender_payee_code,
                 ptdb.payee_parcel_number, l.loan_number,
                 COUNT (DISTINCT l.loan_number) AS COUNT
            FROM loan l, ptdb_tax_line ptdb, loan_parcel lp
           WHERE l.lender_number in (106,222,472,591,685,708,936)
             AND l.lender_number = ptdb.lender_number
             AND l.loan_number = ptdb.loan_number
                   AND SUBSTR (l.match_code, 1, 1) NOT IN ('P', 'Y', 'X')
             AND l.loan_posting_date > :posteda
             AND l.loan_posting_date < :postedb
            AND l.lender_number = lp.lender_number (+)
                   AND l.loan_number = lp.loan_number (+)
                   AND lp.lender_number is null
             AND TRUNC (ptdb.last_change_date) - TRUNC (loan_posting_date) < 4
        GROUP BY l.lender_number,
                 lender_payee_code,
                 ptdb.payee_parcel_number,
                 l.loan_number) i,
       (SELECT   /*+ index (l XIE1LOAN) index (lp XPKLOAN_PARCEL) index (ptdb XIE1PTDB_TAX_LINE))*/
                 l.lender_number, ptdb.lender_payee_code,
                 ptdb.payee_parcel_number, l.loan_number,
                 COUNT (DISTINCT l.loan_number) AS COUNT
            FROM loan l, ptdb_tax_line ptdb, loan_parcel lp
           WHERE l.lender_number in (106,222,472,591,685,708,936)
             AND l.lender_number = ptdb.lender_number
             AND l.loan_number = ptdb.loan_number
                   AND SUBSTR (l.match_code, 1, 1) NOT IN ('P', 'Y', 'X')
             AND l.loan_posting_date > :posteda
             AND l.loan_posting_date < :postedb
             AND l.lender_number = lp.lender_number (+)
                   AND l.loan_number = lp.loan_number (+)
                   AND lp.lender_number is null
             AND TRUNC (ptdb.last_change_date) - TRUNC (loan_posting_date) < 5
        GROUP BY l.lender_number,
                 lender_payee_code,
                 ptdb.payee_parcel_number,
                 l.loan_number) j,
       (SELECT   /*+ index (l XIE1LOAN) index (lp XPKLOAN_PARCEL) index (ptdb XIE1PTDB_TAX_LINE))*/
                 l.lender_number, ptdb.lender_payee_code,
                 ptdb.payee_parcel_number, l.loan_number,
                 COUNT (DISTINCT l.loan_number) AS COUNT
            FROM loan l, ptdb_tax_line ptdb, loan_parcel lp
           WHERE l.lender_number in (106,222,472,591,685,708,936)
             AND l.lender_number = ptdb.lender_number
             AND l.loan_number = ptdb.loan_number
                   AND SUBSTR (l.match_code, 1, 1) NOT IN ('P', 'Y', 'X')
             AND l.loan_posting_date > :posteda
             AND l.loan_posting_date < :postedb
             AND l.lender_number = lp.lender_number (+)
                   AND l.loan_number = lp.loan_number (+)
                   AND lp.lender_number is null
             AND TRUNC (ptdb.last_change_date) - TRUNC (loan_posting_date) < 6
        GROUP BY l.lender_number,
                 lender_payee_code,
                 ptdb.payee_parcel_number,
                 l.loan_number) k,
       (SELECT   /*+ index (l XIE1LOAN) index (lp XPKLOAN_PARCEL) index (ptdb XIE1PTDB_TAX_LINE))*/
                 l.lender_number, ptdb.lender_payee_code,
                 ptdb.payee_parcel_number, l.loan_number,
                 COUNT (DISTINCT l.loan_number) AS COUNT
            FROM loan l, ptdb_tax_line ptdb, loan_parcel lp
           WHERE l.lender_number in (106,222,472,591,685,708,936)
             AND l.lender_number = ptdb.lender_number
             AND l.loan_number = ptdb.loan_number
                   AND SUBSTR (l.match_code, 1, 1) NOT IN ('P', 'Y', 'X')
             AND l.loan_posting_date > :posteda
             AND l.loan_posting_date < :postedb
             AND l.lender_number = lp.lender_number (+)
                   AND l.loan_number = lp.loan_number (+)
                   AND lp.lender_number is null
             AND TRUNC (ptdb.last_change_date) - TRUNC (loan_posting_date) < 7
        GROUP BY l.lender_number,
                 lender_payee_code,
                 ptdb.payee_parcel_number,
                 l.loan_number) l,
       (SELECT   /*+ index (l XIE1LOAN) index (lp XPKLOAN_PARCEL) index (ptdb XIE1PTDB_TAX_LINE))*/
                 l.lender_number, ptdb.lender_payee_code,
                 ptdb.payee_parcel_number, l.loan_number,
                 COUNT (DISTINCT l.loan_number) AS COUNT
            FROM loan l, ptdb_tax_line ptdb, loan_parcel lp
           WHERE l.lender_number in (106,222,472,591,685,708,936)
             AND l.lender_number = ptdb.lender_number
             AND l.loan_number = ptdb.loan_number
                   AND SUBSTR (l.match_code, 1, 1) NOT IN ('P', 'Y', 'X')
             AND l.loan_posting_date > :posteda
             AND l.loan_posting_date < :postedb
             AND l.lender_number = lp.lender_number (+)
                   AND l.loan_number = lp.loan_number (+)
                   AND lp.lender_number is null
             AND TRUNC (ptdb.last_change_date) - TRUNC (loan_posting_date) < 8
        GROUP BY l.lender_number,
                 lender_payee_code,
                 ptdb.payee_parcel_number,
                 l.loan_number) m,
       (SELECT   /*+ index (l XIE1LOAN) index (lp XPKLOAN_PARCEL) index (ptdb XIE1PTDB_TAX_LINE))*/
                 l.lender_number, ptdb.lender_payee_code,
                 ptdb.payee_parcel_number, l.loan_number,
                 COUNT (DISTINCT l.loan_number) AS COUNT
            FROM loan l, ptdb_tax_line ptdb, loan_parcel lp
           WHERE l.lender_number in (106,222,472,591,685,708,936)
             AND l.lender_number = ptdb.lender_number
             AND l.loan_number = ptdb.loan_number
                   AND SUBSTR (l.match_code, 1, 1) NOT IN ('P', 'Y', 'X')
             AND l.loan_posting_date > :posteda
             AND l.loan_posting_date < :postedb
             AND l.lender_number = lp.lender_number (+)
                   AND l.loan_number = lp.loan_number (+)
                   AND lp.lender_number is null
             AND TRUNC (ptdb.last_change_date) - TRUNC (loan_posting_date) < 9
        GROUP BY l.lender_number,
                 lender_payee_code,
                 ptdb.payee_parcel_number,
                 l.loan_number) n,
       (SELECT   /*+ index (l XIE1LOAN) index (lp XPKLOAN_PARCEL) index (ptdb XIE1PTDB_TAX_LINE))*/
                 l.lender_number, ptdb.lender_payee_code,
                 ptdb.payee_parcel_number, l.loan_number,
                 COUNT (DISTINCT l.loan_number) AS COUNT
            FROM loan l, ptdb_tax_line ptdb, loan_parcel lp
           WHERE l.lender_number in (106,222,472,591,685,708,936)
             AND l.lender_number = ptdb.lender_number
             AND l.loan_number = ptdb.loan_number
                   AND SUBSTR (l.match_code, 1, 1) NOT IN ('P', 'Y', 'X')
             AND l.loan_posting_date > :posteda
             AND l.loan_posting_date < :postedb
             AND l.lender_number = lp.lender_number (+)
                   AND l.loan_number = lp.loan_number (+)
                   AND lp.lender_number is null
             AND TRUNC (ptdb.last_change_date) - TRUNC (loan_posting_date) <
                                                                            10
        GROUP BY l.lender_number,
                 lender_payee_code,
                 ptdb.payee_parcel_number,
                 l.loan_number) o,
       (SELECT   /*+ index (l XIE1LOAN) index (lp XPKLOAN_PARCEL) index (ptdb XIE1PTDB_TAX_LINE))*/
                 l.lender_number, ptdb.lender_payee_code,
                 ptdb.payee_parcel_number, l.loan_number,
                 COUNT (DISTINCT l.loan_number) AS COUNT
            FROM loan l, ptdb_tax_line ptdb, loan_parcel lp
           WHERE l.lender_number in (106,222,472,591,685,708,936)
             AND l.lender_number = ptdb.lender_number
             AND l.loan_number = ptdb.loan_number
                   AND SUBSTR (l.match_code, 1, 1) NOT IN ('P', 'Y', 'X')
             AND l.loan_posting_date > :posteda
             AND l.loan_posting_date < :postedb
             AND l.lender_number = lp.lender_number (+)
                   AND l.loan_number = lp.loan_number (+)
                   AND lp.lender_number is null
             AND TRUNC (ptdb.last_change_date) - TRUNC (loan_posting_date) <
                                                                            11
        GROUP BY l.lender_number,
                 lender_payee_code,
                 ptdb.payee_parcel_number,
                 l.loan_number) p,
       (SELECT   /*+ index (l XIE1LOAN) index (lp XPKLOAN_PARCEL) index (ptdb XIE1PTDB_TAX_LINE))*/
                 l.lender_number, ptdb.lender_payee_code,
                 ptdb.payee_parcel_number, l.loan_number,
                 COUNT (DISTINCT l.loan_number) AS COUNT
            FROM loan l, ptdb_tax_line ptdb, loan_parcel lp
           WHERE l.lender_number in (106,222,472,591,685,708,936)
             AND l.lender_number = ptdb.lender_number
             AND l.loan_number = ptdb.loan_number
                   AND SUBSTR (l.match_code, 1, 1) NOT IN ('P', 'Y', 'X')
             AND l.loan_posting_date > :posteda
             AND l.loan_posting_date < :postedb
             AND l.lender_number = lp.lender_number (+)
                   AND l.loan_number = lp.loan_number (+)
                   AND lp.lender_number is null
             AND TRUNC (ptdb.last_change_date) - TRUNC (loan_posting_date) <
                                                                            12
        GROUP BY l.lender_number,
                 lender_payee_code,
                 ptdb.payee_parcel_number,
                 l.loan_number) q,
       (SELECT   /*+ index (l XIE1LOAN) index (lp XPKLOAN_PARCEL) index (ptdb XIE1PTDB_TAX_LINE))*/
                 l.lender_number, ptdb.lender_payee_code,
                 ptdb.payee_parcel_number, l.loan_number,
                 COUNT (DISTINCT l.loan_number) AS COUNT
            FROM loan l, ptdb_tax_line ptdb, loan_parcel lp
           WHERE l.lender_number in (106,222,472,591,685,708,936)
             AND l.lender_number = ptdb.lender_number
             AND l.loan_number = ptdb.loan_number
                   AND SUBSTR (l.match_code, 1, 1) NOT IN ('P', 'Y', 'X')
             AND l.loan_posting_date > :posteda
             AND l.loan_posting_date < :postedb
             AND l.lender_number = lp.lender_number (+)
                   AND l.loan_number = lp.loan_number (+)
                   AND lp.lender_number is null
             AND TRUNC (ptdb.last_change_date) - TRUNC (loan_posting_date) <
                                                                            13
        GROUP BY l.lender_number,
                 lender_payee_code,
                 ptdb.payee_parcel_number,
                 l.loan_number) r,
       (SELECT   /*+ index (l XIE1LOAN) index (lp XPKLOAN_PARCEL) index (ptdb XIE1PTDB_TAX_LINE))*/
                 l.lender_number, ptdb.lender_payee_code,
                 ptdb.payee_parcel_number, l.loan_number,
                 COUNT (DISTINCT l.loan_number) AS COUNT
            FROM loan l, ptdb_tax_line ptdb, loan_parcel lp
           WHERE l.lender_number in (106,222,472,591,685,708,936)
             AND l.lender_number = ptdb.lender_number
             AND l.loan_number = ptdb.loan_number
                   AND SUBSTR (l.match_code, 1, 1) NOT IN ('P', 'Y', 'X')
             AND l.loan_posting_date > :posteda
             AND l.loan_posting_date < :postedb
             AND l.lender_number = lp.lender_number (+)
                   AND l.loan_number = lp.loan_number (+)
                   AND lp.lender_number is null
             AND TRUNC (ptdb.last_change_date) - TRUNC (loan_posting_date) <
                                                                            14
        GROUP BY l.lender_number,
                 lender_payee_code,
                 ptdb.payee_parcel_number,
                 l.loan_number) s,
       (SELECT   /*+ index (l XIE1LOAN) index (lp XPKLOAN_PARCEL) index (ptdb XIE1PTDB_TAX_LINE))*/
                 l.lender_number, ptdb.lender_payee_code,
                 ptdb.payee_parcel_number, l.loan_number,
                 COUNT (DISTINCT l.loan_number) AS COUNT
            FROM loan l, ptdb_tax_line ptdb, loan_parcel lp
           WHERE l.lender_number in (106,222,472,591,685,708,936)
             AND l.lender_number = ptdb.lender_number
             AND l.loan_number = ptdb.loan_number
                   AND SUBSTR (l.match_code, 1, 1) NOT IN ('P', 'Y', 'X')
             AND l.loan_posting_date > :posteda
             AND l.loan_posting_date < :postedb
             AND l.lender_number = lp.lender_number (+)
                   AND l.loan_number = lp.loan_number (+)
                   AND lp.lender_number is null
             AND TRUNC (ptdb.last_change_date) - TRUNC (loan_posting_date) <
                                                                            15
        GROUP BY l.lender_number,
                 lender_payee_code,
                 ptdb.payee_parcel_number,
                 l.loan_number) t,
       (SELECT   /*+ index (l XIE1LOAN) index (lp XPKLOAN_PARCEL) index (ptdb XIE1PTDB_TAX_LINE))*/
                 l.lender_number, ptdb.lender_payee_code,
                 ptdb.payee_parcel_number, l.loan_number,
                 COUNT (DISTINCT l.loan_number) AS COUNT
            FROM loan l, ptdb_tax_line ptdb, loan_parcel lp
           WHERE l.lender_number in (106,222,472,591,685,708,936)
             AND l.lender_number = ptdb.lender_number
             AND l.loan_number = ptdb.loan_number
                   AND SUBSTR (l.match_code, 1, 1) NOT IN ('P', 'Y', 'X')
             AND l.loan_posting_date > :posteda
             AND l.loan_posting_date < :postedb
             AND l.lender_number = lp.lender_number (+)
                   AND l.loan_number = lp.loan_number (+)
                   AND lp.lender_number is null
             AND TRUNC (ptdb.last_change_date) - TRUNC (loan_posting_date) <
                                                                            16
        GROUP BY l.lender_number,
                 lender_payee_code,
                 ptdb.payee_parcel_number,
                 l.loan_number) u,
       (SELECT   /*+ index (l XIE1LOAN) index (lp XPKLOAN_PARCEL) index (ptdb XIE1PTDB_TAX_LINE))*/
                 l.lender_number, ptdb.lender_payee_code,
                 ptdb.payee_parcel_number, l.loan_number,
                 COUNT (DISTINCT l.loan_number) AS COUNT
            FROM loan l, ptdb_tax_line ptdb, loan_parcel lp
           WHERE l.lender_number in (106,222,472,591,685,708,936)
             AND l.lender_number = ptdb.lender_number
             AND l.loan_number = ptdb.loan_number
                   AND SUBSTR (l.match_code, 1, 1) NOT IN ('P', 'Y', 'X')
             AND l.loan_posting_date > :posteda
             AND l.loan_posting_date < :postedb
             AND l.lender_number = lp.lender_number (+)
                   AND l.loan_number = lp.loan_number (+)
                   AND lp.lender_number is null
             AND TRUNC (ptdb.last_change_date) - TRUNC (loan_posting_date) <
                                                                            17
        GROUP BY l.lender_number,
                 lender_payee_code,
                 ptdb.payee_parcel_number,
                 l.loan_number) v,
       (SELECT   /*+ index (l XIE1LOAN) index (lp XPKLOAN_PARCEL) index (ptdb XIE1PTDB_TAX_LINE))*/
                 l.lender_number, ptdb.lender_payee_code,
                 ptdb.payee_parcel_number, l.loan_number,
                 COUNT (DISTINCT l.loan_number) AS COUNT
            FROM loan l, ptdb_tax_line ptdb, loan_parcel lp
           WHERE l.lender_number in (106,222,472,591,685,708,936)
             AND l.lender_number = ptdb.lender_number
             AND l.loan_number = ptdb.loan_number
                   AND SUBSTR (l.match_code, 1, 1) NOT IN ('P', 'Y', 'X')
             AND l.loan_posting_date > :posteda
             AND l.loan_posting_date < :postedb
             AND l.lender_number = lp.lender_number (+)
                   AND l.loan_number = lp.loan_number (+)
                   AND lp.lender_number is null
             AND TRUNC (ptdb.last_change_date) - TRUNC (loan_posting_date) <
                                                                            18
        GROUP BY l.lender_number,
                 lender_payee_code,
                 ptdb.payee_parcel_number,
                 l.loan_number) w,
       (SELECT   /*+ index (l XIE1LOAN) index (lp XPKLOAN_PARCEL) index (ptdb XIE1PTDB_TAX_LINE))*/
                 l.lender_number, ptdb.lender_payee_code,
                 ptdb.payee_parcel_number, l.loan_number,
                 COUNT (DISTINCT l.loan_number) AS COUNT
            FROM loan l, ptdb_tax_line ptdb, loan_parcel lp
           WHERE l.lender_number in (106,222,472,591,685,708,936)
             AND l.lender_number = ptdb.lender_number
             AND l.loan_number = ptdb.loan_number
                   AND SUBSTR (l.match_code, 1, 1) NOT IN ('P', 'Y', 'X')
             AND l.loan_posting_date > :posteda
             AND l.loan_posting_date < :postedb
             AND l.lender_number = lp.lender_number (+)
                   AND l.loan_number = lp.loan_number (+)
                   AND lp.lender_number is null
             AND TRUNC (ptdb.last_change_date) - TRUNC (loan_posting_date) <
                                                                            19
        GROUP BY l.lender_number,
                 lender_payee_code,
                 ptdb.payee_parcel_number,
                 l.loan_number) x,
       (SELECT   /*+ index (l XIE1LOAN) index (lp XPKLOAN_PARCEL) index (ptdb XIE1PTDB_TAX_LINE))*/
                 l.lender_number, ptdb.lender_payee_code,
                 ptdb.payee_parcel_number, l.loan_number,
                 COUNT (DISTINCT l.loan_number) AS COUNT
            FROM loan l, ptdb_tax_line ptdb, loan_parcel lp
           WHERE l.lender_number in (106,222,472,591,685,708,936)
             AND l.lender_number = ptdb.lender_number
             AND l.loan_number = ptdb.loan_number
                   AND SUBSTR (l.match_code, 1, 1) NOT IN ('P', 'Y', 'X')
             AND l.loan_posting_date > :posteda
             AND l.loan_posting_date < :postedb
            AND l.lender_number = lp.lender_number (+)
                   AND l.loan_number = lp.loan_number (+)
                   AND lp.lender_number is null
             AND TRUNC (ptdb.last_change_date) - TRUNC (loan_posting_date) <
                                                                            20
        GROUP BY l.lender_number,
                 lender_payee_code,
                 ptdb.payee_parcel_number,
                 l.loan_number) y,
       (SELECT   /*+ index (l XIE1LOAN) index (lp XPKLOAN_PARCEL) index (ptdb XIE1PTDB_TAX_LINE))*/
                 l.lender_number, ptdb.lender_payee_code,
                 ptdb.payee_parcel_number, l.loan_number,
                 COUNT (DISTINCT l.loan_number) AS COUNT
            FROM loan l, ptdb_tax_line ptdb, loan_parcel lp
           WHERE l.lender_number in (106,222,472,591,685,708,936)
             AND l.lender_number = ptdb.lender_number
             AND l.loan_number = ptdb.loan_number
                   AND SUBSTR (l.match_code, 1, 1) NOT IN ('P', 'Y', 'X')
             AND l.loan_posting_date > :posteda
             AND l.loan_posting_date < :postedb
             AND l.lender_number = lp.lender_number (+)
                   AND l.loan_number = lp.loan_number (+)
                   AND lp.lender_number is null
             AND TRUNC (ptdb.last_change_date) - TRUNC (loan_posting_date) <
                                                                            21
        GROUP BY l.lender_number,
                 lender_payee_code,
                 ptdb.payee_parcel_number,
                 l.loan_number) z,
       (SELECT   /*+ index (l XIE1LOAN) index (lp XPKLOAN_PARCEL) index (ptdb XIE1PTDB_TAX_LINE))*/
                 l.lender_number, ptdb.lender_payee_code,
                 ptdb.payee_parcel_number, l.loan_number,
                 COUNT (DISTINCT l.loan_number) AS COUNT
            FROM loan l, ptdb_tax_line ptdb, loan_parcel lp
           WHERE l.lender_number in (106,222,472,591,685,708,936)
             AND l.lender_number = ptdb.lender_number
             AND l.loan_number = ptdb.loan_number
                   AND SUBSTR (l.match_code, 1, 1) NOT IN ('P', 'Y', 'X')
             AND l.loan_posting_date > :posteda
             AND l.loan_posting_date < :postedb
             AND l.lender_number = lp.lender_number (+)
                   AND l.loan_number = lp.loan_number (+)
                   AND lp.lender_number is null
             AND TRUNC (ptdb.last_change_date) - TRUNC (loan_posting_date) <
                                                                            22
        GROUP BY l.lender_number,
                 lender_payee_code,
                 ptdb.payee_parcel_number,
                 l.loan_number) aa,
       (SELECT   /*+ index (l XIE1LOAN) index (lp XPKLOAN_PARCEL) index (ptdb XIE1PTDB_TAX_LINE))*/
                 l.lender_number, ptdb.lender_payee_code,
                 ptdb.payee_parcel_number, l.loan_number,
                 COUNT (DISTINCT l.loan_number) AS COUNT
            FROM loan l, ptdb_tax_line ptdb, loan_parcel lp
           WHERE l.lender_number in (106,222,472,591,685,708,936)
             AND l.lender_number = ptdb.lender_number
             AND l.loan_number = ptdb.loan_number
                   AND SUBSTR (l.match_code, 1, 1) NOT IN ('P', 'Y', 'X')
             AND l.loan_posting_date > :posteda
             AND l.loan_posting_date < :postedb
             AND l.lender_number = lp.lender_number (+)
                   AND l.loan_number = lp.loan_number (+)
                   AND lp.lender_number is null
             AND TRUNC (ptdb.last_change_date) - TRUNC (loan_posting_date) <
                                                                            23
        GROUP BY l.lender_number,
                 lender_payee_code,
                 ptdb.payee_parcel_number,
                 l.loan_number) bb,
       (SELECT   /*+ index (l XIE1LOAN) index (lp XPKLOAN_PARCEL) index (ptdb XIE1PTDB_TAX_LINE))*/
                 l.lender_number, ptdb.lender_payee_code,
                 ptdb.payee_parcel_number, l.loan_number,
                 COUNT (DISTINCT l.loan_number) AS COUNT
            FROM loan l, ptdb_tax_line ptdb, loan_parcel lp
           WHERE l.lender_number in (106,222,472,591,685,708,936)
             AND l.lender_number = ptdb.lender_number
             AND l.loan_number = ptdb.loan_number
                   AND SUBSTR (l.match_code, 1, 1) NOT IN ('P', 'Y', 'X')
             AND l.loan_posting_date > :posteda
             AND l.loan_posting_date < :postedb
             AND l.lender_number = lp.lender_number (+)
                   AND l.loan_number = lp.loan_number (+)
                   AND lp.lender_number is null
             AND TRUNC (ptdb.last_change_date) - TRUNC (loan_posting_date) <
                                                                            24
        GROUP BY l.lender_number,
                 lender_payee_code,
                 ptdb.payee_parcel_number,
                 l.loan_number) cc,
       (SELECT   /*+ index (l XIE1LOAN) index (lp XPKLOAN_PARCEL) index (ptdb XIE1PTDB_TAX_LINE))*/
                 l.lender_number, ptdb.lender_payee_code,
                 ptdb.payee_parcel_number, l.loan_number,
                 COUNT (DISTINCT l.loan_number) AS COUNT
            FROM loan l, ptdb_tax_line ptdb, loan_parcel lp
           WHERE l.lender_number in (106,222,472,591,685,708,936)
             AND l.lender_number = ptdb.lender_number
             AND l.loan_number = ptdb.loan_number
                   AND SUBSTR (l.match_code, 1, 1) NOT IN ('P', 'Y', 'X')
             AND l.loan_posting_date > :posteda
             AND l.loan_posting_date < :postedb
             AND l.lender_number = lp.lender_number (+)
                   AND l.loan_number = lp.loan_number (+)
                   AND lp.lender_number is null
             AND TRUNC (ptdb.last_change_date) - TRUNC (loan_posting_date) <
                                                                            25
        GROUP BY l.lender_number,
                 lender_payee_code,
                 ptdb.payee_parcel_number,
                 l.loan_number) dd,
       (SELECT   /*+ index (l XIE1LOAN) index (lp XPKLOAN_PARCEL) index (ptdb XIE1PTDB_TAX_LINE))*/
                 l.lender_number, ptdb.lender_payee_code,
                 ptdb.payee_parcel_number, l.loan_number,
                 COUNT (DISTINCT l.loan_number) AS COUNT
            FROM loan l, ptdb_tax_line ptdb, loan_parcel lp
           WHERE l.lender_number in (106,222,472,591,685,708,936)
             AND l.lender_number = ptdb.lender_number
             AND l.loan_number = ptdb.loan_number
                   AND SUBSTR (l.match_code, 1, 1) NOT IN ('P', 'Y', 'X')
             AND l.loan_posting_date > :posteda
             AND l.loan_posting_date < :postedb
             AND l.lender_number = lp.lender_number (+)
                   AND l.loan_number = lp.loan_number (+)
                   AND lp.lender_number is null
             AND TRUNC (ptdb.last_change_date) - TRUNC (loan_posting_date) <
                                                                            26
        GROUP BY l.lender_number,
                 lender_payee_code,
                 ptdb.payee_parcel_number,
                 l.loan_number) ee,
       (SELECT   /*+ index (l XIE1LOAN) index (lp XPKLOAN_PARCEL) index (ptdb XIE1PTDB_TAX_LINE))*/
                 l.lender_number, ptdb.lender_payee_code,
                 ptdb.payee_parcel_number, l.loan_number,
                 COUNT (DISTINCT l.loan_number) AS COUNT
            FROM loan l, ptdb_tax_line ptdb, loan_parcel lp
           WHERE l.lender_number in (106,222,472,591,685,708,936)
             AND l.lender_number = ptdb.lender_number
             AND l.loan_number = ptdb.loan_number
                   AND SUBSTR (l.match_code, 1, 1) NOT IN ('P', 'Y', 'X')
             AND l.loan_posting_date > :posteda
             AND l.loan_posting_date < :postedb
             AND l.lender_number = lp.lender_number (+)
                   AND l.loan_number = lp.loan_number (+)
                   AND lp.lender_number is null
             AND TRUNC (ptdb.last_change_date) - TRUNC (loan_posting_date) <
                                                                            27
        GROUP BY l.lender_number,
                 lender_payee_code,
                 ptdb.payee_parcel_number,
                 l.loan_number) ff,
       (SELECT   /*+ index (l XIE1LOAN) index (lp XPKLOAN_PARCEL) index (ptdb XIE1PTDB_TAX_LINE))*/
                 l.lender_number, ptdb.lender_payee_code,
                 ptdb.payee_parcel_number, l.loan_number,
                 COUNT (DISTINCT l.loan_number) AS COUNT
            FROM loan l, ptdb_tax_line ptdb, loan_parcel lp
           WHERE l.lender_number in (106,222,472,591,685,708,936)
             AND l.lender_number = ptdb.lender_number
             AND l.loan_number = ptdb.loan_number
                   AND SUBSTR (l.match_code, 1, 1) NOT IN ('P', 'Y', 'X')
             AND l.loan_posting_date > :posteda
             AND l.loan_posting_date < :postedb
             AND l.lender_number = lp.lender_number (+)
                   AND l.loan_number = lp.loan_number (+)
                   AND lp.lender_number is null
             AND TRUNC (ptdb.last_change_date) - TRUNC (loan_posting_date) <
                                                                            28
        GROUP BY l.lender_number,
                 lender_payee_code,
                 ptdb.payee_parcel_number,
                 l.loan_number) gg,
       (SELECT   /*+ index (l XIE1LOAN) index (lp XPKLOAN_PARCEL) index (ptdb XIE1PTDB_TAX_LINE))*/
                 l.lender_number, ptdb.lender_payee_code,
                 ptdb.payee_parcel_number, l.loan_number,
                 COUNT (DISTINCT l.loan_number) AS COUNT
            FROM loan l, ptdb_tax_line ptdb, loan_parcel lp
           WHERE l.lender_number in (106,222,472,591,685,708,936)
             AND l.lender_number = ptdb.lender_number
             AND l.loan_number = ptdb.loan_number
                   AND SUBSTR (l.match_code, 1, 1) NOT IN ('P', 'Y', 'X')
             AND l.loan_posting_date > :posteda
             AND l.loan_posting_date < :postedb
             AND l.lender_number = lp.lender_number (+)
                   AND l.loan_number = lp.loan_number (+)
                   AND lp.lender_number is null
             AND TRUNC (ptdb.last_change_date) - TRUNC (loan_posting_date) <
                                                                            29
        GROUP BY l.lender_number,
                 lender_payee_code,
                 ptdb.payee_parcel_number,
                 l.loan_number) hh,
       (SELECT   /*+ index (l XIE1LOAN) index (lp XPKLOAN_PARCEL) index (ptdb XIE1PTDB_TAX_LINE))*/
                 l.lender_number, ptdb.lender_payee_code,
                 ptdb.payee_parcel_number, l.loan_number,
                 COUNT (DISTINCT l.loan_number) AS COUNT
            FROM loan l, ptdb_tax_line ptdb, loan_parcel lp
           WHERE l.lender_number in (106,222,472,591,685,708,936)
             AND l.lender_number = ptdb.lender_number
             AND l.loan_number = ptdb.loan_number
                   AND SUBSTR (l.match_code, 1, 1) NOT IN ('P', 'Y', 'X')
             AND l.loan_posting_date > :posteda
             AND l.loan_posting_date < :postedb
             AND l.lender_number = lp.lender_number (+)
                   AND l.loan_number = lp.loan_number (+)
                   AND lp.lender_number is null
             AND TRUNC (ptdb.last_change_date) - TRUNC (loan_posting_date) <
                                                                            30
        GROUP BY l.lender_number,
                 lender_payee_code,
                 ptdb.payee_parcel_number,
                 l.loan_number) ii,
       (SELECT   /*+ index (l XIE1LOAN) index (lp XPKLOAN_PARCEL) index (ptdb XIE1PTDB_TAX_LINE))*/
                 l.lender_number, ptdb.lender_payee_code,
                 ptdb.payee_parcel_number, l.loan_number,
                 COUNT (DISTINCT l.loan_number) AS COUNT
            FROM loan l, ptdb_tax_line ptdb, loan_parcel lp
           WHERE l.lender_number in (106,222,472,591,685,708,936)
             AND l.lender_number = ptdb.lender_number
             AND l.loan_number = ptdb.loan_number
                   AND SUBSTR (l.match_code, 1, 1) NOT IN ('P', 'Y', 'X')
             AND l.loan_posting_date > :posteda
             AND l.loan_posting_date < :postedb
             AND l.lender_number = lp.lender_number (+)
                   AND l.loan_number = lp.loan_number (+)
                   AND lp.lender_number is null
             AND TRUNC (ptdb.last_change_date) - TRUNC (loan_posting_date) <
                                                                            31
        GROUP BY l.lender_number,
                 lender_payee_code,
                 ptdb.payee_parcel_number,
                 l.loan_number) jj
 WHERE e.lender_number(+) = d.lender_number
   AND f.lender_number(+) = e.lender_number
   AND f.lender_payee_code(+) = e.lender_payee_code
   AND f.payee_parcel_number(+) = e.payee_parcel_number
   AND f.loan_number(+) = e.loan_number
   AND g.lender_number(+) = e.lender_number
   AND g.lender_payee_code(+) = e.lender_payee_code
   AND g.payee_parcel_number(+) = e.payee_parcel_number
   AND g.loan_number(+) = e.loan_number
   AND h.lender_number(+) = e.lender_number
   AND h.lender_payee_code(+) = e.lender_payee_code
   AND h.payee_parcel_number(+) = e.payee_parcel_number
   AND h.loan_number(+) = e.loan_number
   AND i.lender_number(+) = e.lender_number
   AND i.lender_payee_code(+) = e.lender_payee_code
   AND i.payee_parcel_number(+) = e.payee_parcel_number
   AND i.loan_number(+) = e.loan_number
   AND j.lender_number(+) = e.lender_number
   AND j.lender_payee_code(+) = e.lender_payee_code
   AND j.payee_parcel_number(+) = e.payee_parcel_number
   AND j.loan_number(+) = e.loan_number
   AND k.lender_number(+) = e.lender_number
   AND k.lender_payee_code(+) = e.lender_payee_code
   AND k.payee_parcel_number(+) = e.payee_parcel_number
   AND k.loan_number(+) = e.loan_number
   AND l.lender_number(+) = e.lender_number
   AND l.lender_payee_code(+) = e.lender_payee_code
   AND l.payee_parcel_number(+) = e.payee_parcel_number
   AND l.loan_number(+) = e.loan_number
   AND m.lender_number(+) = e.lender_number
   AND m.lender_payee_code(+) = e.lender_payee_code
   AND m.payee_parcel_number(+) = e.payee_parcel_number
   AND m.loan_number(+) = e.loan_number
   AND n.lender_number(+) = e.lender_number
   AND n.lender_payee_code(+) = e.lender_payee_code
   AND n.payee_parcel_number(+) = e.payee_parcel_number
   AND n.loan_number(+) = e.loan_number
   AND o.lender_number(+) = e.lender_number
   AND o.lender_payee_code(+) = e.lender_payee_code
   AND o.payee_parcel_number(+) = e.payee_parcel_number
   AND o.loan_number(+) = e.loan_number
   AND p.lender_number(+) = e.lender_number
   AND p.lender_payee_code(+) = e.lender_payee_code
   AND p.payee_parcel_number(+) = e.payee_parcel_number
   AND p.loan_number(+) = e.loan_number
   AND q.lender_number(+) = e.lender_number
   AND q.lender_payee_code(+) = e.lender_payee_code
   AND q.payee_parcel_number(+) = e.payee_parcel_number
   AND q.loan_number(+) = e.loan_number
   AND r.lender_number(+) = e.lender_number
   AND r.lender_payee_code(+) = e.lender_payee_code
   AND r.payee_parcel_number(+) = e.payee_parcel_number
   AND r.loan_number(+) = e.loan_number
   AND s.lender_number(+) = e.lender_number
   AND s.lender_payee_code(+) = e.lender_payee_code
   AND s.payee_parcel_number(+) = e.payee_parcel_number
   AND s.loan_number(+) = e.loan_number
   AND t.lender_number(+) = e.lender_number
   AND t.lender_payee_code(+) = e.lender_payee_code
   AND t.payee_parcel_number(+) = e.payee_parcel_number
   AND t.loan_number(+) = e.loan_number
   AND u.lender_number(+) = e.lender_number
   AND u.lender_payee_code(+) = e.lender_payee_code
   AND u.payee_parcel_number(+) = e.payee_parcel_number
   AND u.loan_number(+) = e.loan_number
   AND v.lender_number(+) = e.lender_number
   AND v.lender_payee_code(+) = e.lender_payee_code
   AND v.payee_parcel_number(+) = e.payee_parcel_number
   AND v.loan_number(+) = e.loan_number
   AND w.lender_number(+) = e.lender_number
   AND w.lender_payee_code(+) = e.lender_payee_code
   AND w.payee_parcel_number(+) = e.payee_parcel_number
   AND w.loan_number(+) = e.loan_number
   AND x.lender_number(+) = e.lender_number
   AND x.lender_payee_code(+) = e.lender_payee_code
   AND x.payee_parcel_number(+) = e.payee_parcel_number
   AND x.loan_number(+) = e.loan_number
   AND y.lender_number(+) = e.lender_number
   AND y.lender_payee_code(+) = e.lender_payee_code
   AND y.payee_parcel_number(+) = e.payee_parcel_number
   AND y.loan_number(+) = e.loan_number
   AND z.lender_number(+) = e.lender_number
   AND z.lender_payee_code(+) = e.lender_payee_code
   AND z.payee_parcel_number(+) = e.payee_parcel_number
   AND z.loan_number(+) = e.loan_number
   AND aa.lender_number(+) = e.lender_number
   AND aa.lender_payee_code(+) = e.lender_payee_code
   AND aa.payee_parcel_number(+) = e.payee_parcel_number
   AND aa.loan_number(+) = e.loan_number
   AND bb.lender_number(+) = e.lender_number
   AND bb.lender_payee_code(+) = e.lender_payee_code
   AND bb.payee_parcel_number(+) = e.payee_parcel_number
   AND bb.loan_number(+) = e.loan_number
   AND cc.lender_number(+) = e.lender_number
   AND cc.lender_payee_code(+) = e.lender_payee_code
   AND cc.payee_parcel_number(+) = e.payee_parcel_number
   AND cc.loan_number(+) = e.loan_number
   AND dd.lender_number(+) = e.lender_number
   AND dd.lender_payee_code(+) = e.lender_payee_code
   AND dd.payee_parcel_number(+) = e.payee_parcel_number
   AND dd.loan_number(+) = e.loan_number
   AND ee.lender_number(+) = e.lender_number
   AND ee.lender_payee_code(+) = e.lender_payee_code
   AND ee.payee_parcel_number(+) = e.payee_parcel_number
   AND ee.loan_number(+) = e.loan_number
   AND ff.lender_number(+) = e.lender_number
   AND ff.lender_payee_code(+) = e.lender_payee_code
   AND ff.payee_parcel_number(+) = e.payee_parcel_number
   AND ff.loan_number(+) = e.loan_number
   AND gg.lender_number(+) = e.lender_number
   AND gg.lender_payee_code(+) = e.lender_payee_code
   AND gg.payee_parcel_number(+) = e.payee_parcel_number
   AND gg.loan_number(+) = e.loan_number
   AND hh.lender_number(+) = e.lender_number
   AND hh.lender_payee_code(+) = e.lender_payee_code
   AND hh.payee_parcel_number(+) = e.payee_parcel_number
   AND hh.loan_number(+) = e.loan_number
   AND ii.lender_number(+) = e.lender_number
   AND ii.lender_payee_code(+) = e.lender_payee_code
   AND ii.payee_parcel_number(+) = e.payee_parcel_number
   AND ii.loan_number(+) = e.loan_number
   AND jj.lender_number(+) = e.lender_number
   AND jj.lender_payee_code(+) = e.lender_payee_code
   AND jj.payee_parcel_number(+) = e.payee_parcel_number
   AND jj.loan_number(+) = e.loan_number
Join the community to see this answer!
Join our exclusive community to see this answer & millions of others.
Unlock 3 Answers and 7 Comments.
Join the Community
Learn from the best

Network and collaborate with thousands of CTOs, CISOs, and IT Pros rooting for you and your success.

Andrew Hancock - VMware vExpert
See if this solution works for you by signing up for a 7 day free trial.
Unlock 3 Answers and 7 Comments.
Try for 7 days

”The time we save is the biggest benefit of E-E to our team. What could take multiple guys 2 hours or more each to find is accessed in around 15 minutes on Experts Exchange.

-Mike Kapnisakis, Warner Bros