Ciao e buon anno!
Ho questo bel quesito da proporvi:
Sto lavorando su una query che pensavo semplice ma evidentemente, almeno per me, non lo è.
Premetto che solo da poco sto lavorando con Oracle e per fare un po' di test ho scelto la versione di Oracle XE.
Per fare le query sto usando SQL Manager 2007.
Questa query non funziona:
codice:
SELECT
a.CODICE as CodiceArticolo,
(SELECT DATA_INIZIO FROM ARTICOLI_LISTINO WHERE ID_PADRE = a.ID_ARTICOLI AND ROWNUM = 1 ORDER BY DATA_FINE asc) as DataInizio
FROM
ARTICOLI a
ORDER BY CodiceArticolo
Però funziona quest'altra:
codice:
SELECT
a.CODICE as CodiceArticolo,
(SELECT DATA_INIZIO FROM ARTICOLI_LISTINO WHERE ID_PADRE = a.ID_ARTICOLI AND ROWNUM = 1) as DataInizio
FROM
ARTICOLI a
ORDER BY CodiceArticolo
Così come funziona anche questa:
codice:
SELECT DATA_FINE FROM ARTICOLI_LISTINO WHERE ROWNUM = 1 ORDER BY DATA_FINE ASC
La prima query mi restituisce l'errore:
ORA-00907: parentesi chiusa mancante
Dove è l'inghippo?
A quanto pare il problema sta proprio nella clausola
codice:
ORDER BY DATA_FINE asc
Ma perchè considerato che la stessa condizione mi funziona nella seconda query?