SELECT processing order For the query from the reading:
SELECT i1.CustABN
FROM INVOICE i1, INVOICE i2
WHERE i1.CustABN = i2.CustABN
AND TRUNC(i1.InvDate) = DATE '2004-9-16'
AND TRUNC(i2.InvDate) = DATE '2004-10-6';
Using the six step process work out the query output after each step.
FROM This creates the cross product for the two instances of the table INVOICE. Every row in the INVOICE table is combined with every other row.
The first lines of the output are:
![]()
Notice that the two dates needed for the query, now appear on the same row.
WHEREAll the rows that do not satisfy the where condition i.e.
WHERE i1.CustABN = i2.CustABN are eliminated.
AND TRUNC(i1.InvDate) = DATE '2004-9-16'
AND TRUNC(i2.InvDate) = DATE '2004-10-6';
The first lines of the output are:
![]()

The spurious rows from Step One are deleted.
GROUP BY & HAVING These steps are not applicable
SELECTThe output columns are now chosen:
SELECT i1.CustABN
The output becomes:
![]()

ORDERBYThis steps is not applicable