I have this SQL with the UNION in it:
Code:
SELECT DISTINCT [b]PSDETL_PROJECTNAME[/b]
FROM S4111000.PSDETL_INFORMATION
WHERE (PSDETL_DELBYTE IN ('A', 'N', 'F', 'Z')) AND (SUBSTR(PSDETL_PROJECTNAME, 1, 13) IN (SELECT DISTINCT SUBSTR(S4111000.PS404_PERMITS.PSPERMIT_PROJECTNAME, 1, 13) FROM S4111000.PS404_MITIGATE_PERMITS, S4111000.PS404_PERMITS WHERE S4111000.PS404_MITIGATE_PERMITS.PSSITE_404_NUMBER = S4111000.PS404_PERMITS.PSPERMIT_404_NUMBER
AND ((S4111000.PS404_PERMITS.PSPERMIT_MONITOR_REQUIRED IS NULL OR S4111000.PS404_PERMITS.PSPERMIT_MONITOR_REQUIRED = 'Y') AND (S4111000.PS404_MITIGATE_PERMITS.PSSITE_MONITOR_RELEASED IS NULL))))
[red]UNION[/red]
SELECT DISTINCT [b]PSDETL_PROJECTNAME[/b] FROM S4111000.PSDETL_INFORMATION WHERE (PSDETL_DELBYTE IN ('A', 'N', 'F')) AND (SUBSTR(PSDETL_PROJECTNAME, 1, 13) IN (SELECT DISTINCT SUBSTR(S4111000.PS404_PERMITS.PSPERMIT_PROJECTNAME, 1, 13) FROM S4111000.PS404_MITIGATE_PERMITS, S4111000.PS404_PERMITS WHERE S4111000.PS404_MITIGATE_PERMITS.PSSITE_404_NUMBER = S4111000.PS404_PERMITS.PSPERMIT_404_NUMBER
AND (S4111000.PS404_PERMITS.PSPERMIT_MONITOR_REQUIRED = 'N')))[blue]
ORDER BY [COLOR=blue yellow]SUBSTR[/color](PSDETL_PROJECTNAME, 4, 6), PSDETL_PROJECTNAME[/blue]
ORA-01785 ORDER BY item must be the number of a SELECT-list expression[/tt]
SQL works just fine if I do not use ORDER BY, or just use [tt] ORDER BY 1[/tt] or [tt] ORDER BY PSDETL_PROJECTNAME[/tt], but if I include SUBSTR in my ORDER BY I get SUBSTR highlighted and an error ORA-01785
I have the details about the error:
But that does not make sense to me - my ORDER BY has column name used in Select.Cause: Either an ORDER BY item for a set expression is not a column number, or the ORDER BY item is not the number of a SELECT list column.
Action: The ORDER BY item must be a number between 1 and the number of columns in the SELECT list. Check the column number and retry the statement.
Whe can't I use SUBSTR in my ORDER BY?
Have fun.
---- Andy