PDA

View Full Version : [SQL] N file da cartelle diverse


GiulioCesare
29-08-2006, 16:45
Salve ragazzi, ho un problema con una query su Oracle. La query mi deve restituire il nome dei primi 3 file, che si trovano in 3 cartelle diverse, quindi in totale avrò 9 file, i quali appartengono a 3 cartelle diverse, ho provato nella seguente maniera, ma facendo così mi vengono restituiti i file in maniera casuale, e spesso nella ricerca viene esclusa una cartella, visto che la query appena trova 9 file viene conclusa. Comunque il codice sql che ho provato è questo:

select co.descrizione as descrizione,co.percorso as percorso
from contenuti co,CARTELLE ca
where co.CARTELLA=ca.CODICE and
(ca.DESCRIZIONE ='NomeCartella1' or ca.DESCRIZIONE='NomeCartella2' or ca.DESCRIZIONE='NomeCartella3')
and ROWNUM <= 9

Grazie a chi vorrà aiutarmi

anonimizzato
29-08-2006, 18:55
Scusa ma per "CARTELLE" cosa intendi? Directories del server o forse Tabelle del DB.

Non mi è chiaro.

ViolaX
30-08-2006, 06:09
select co.descrizione as descrizione,co.percorso as percorso
from contenuti co,CARTELLE ca
where co.CARTELLA=ca.CODICE and
(ca.DESCRIZIONE ='NomeCartella1' or ca.DESCRIZIONE='NomeCartella2' or ca.DESCRIZIONE='NomeCartella3')
and ROWNUM <= 9


Ciao, non penso sia realizzabile la query con l'opzione ROWNUM, perchè blocca a nove il numero di records della query, ma non i contenuti.

La soluzione più semplica sarebbe inserire un campo (p.es. ContatorePercorso)nella tabella che numera i percorsi all'interno della medesima cartella, per cui la query sarebbe banale:
SELECT co.Descrizione AS descrizione, co.Percorso AS percorso
FROM contenuti AS co, CARTELLE AS ca
WHERE (((co.Cartella)=[ca].[CODICE]) AND ((ca.Descrizione)='NomeCartella1' Or (ca.Descrizione)='NomeCartella2' Or (ca.Descrizione)='NomeCartella3') AND ((co.ContatorePercorso)<3))
GROUP BY co.Descrizione, co.Percorso
ORDER BY co.Descrizione, co.Percorso;


Se non ti è possibile, utilizza il comando MoveNext alla lettura del quarto codice, fino a quando non cambia il nome della cartella