DQL per scoprire i documenti della versione corrente in una cartella
-
21-12-2019 - |
Domanda
Come interrogare sia la cartella che il documento in modo da poter ottenere:
- Tutti i documenti della sottocartella.
- Solo la cartella documenti.
- Conteggio dei documenti nella sottocartella, con il nome della cartella.
Soluzione
Ho preso la libertà per nominare le query un po 'diversamente da quello che ha chiesto, ma si adatta anche a farlo.È solo un po 'più chiaro cosa ritorna qualche query.Ho usato la cartella Temp per questo esempio.
- .
- Tutti i documenti nella cartella comprese le sottocartelle
- Tutti i documenti nella cartella
- Conteggio di documenti in sottocartelle specifiche sotto qualche cartella
..SELECT * FROM dm_document WHERE FOLDER('/Temp', DESCEND)
..SELECT * FROM dm_document WHERE FOLDER('/Temp')
..SELECT COUNT(doc.r_object_id) AS doc_ammount, fol.object_name AS folder_object_name FROM dm_document doc, dm_folder fol WHERE FOLDER('/Temp', descend) AND ANY doc.i_folder_id = fol.r_object_id GROUP BY (fol.object_name)
Altri suggerimenti
Tutti i documenti all'interno di una cartella e di tutte le sue sottocartelle:
SELECT * FROM dm_document WHERE FOLDER('/MyCabinet/MyFolder', DESCEND)
Tutti i documenti all'interno di una cartella senza sottocartelle:
SELECT * FROM dm_document WHERE FOLDER('/MyCabinet/MyFolder')
Tutti i documenti della sottocartella:
SELECT r_object_id, object_name
FROM dm_document(all)
WHERE folder('/myCabinet/myFolder/', DESCEND)
.
Solo i documenti della cartella: Immagino sia simile alla query sopra ma senza la parola chiave DESCEND
.(Non posso testarlo ora.) (Non sono anche sicuro che (all)
sia richiesto o meno.)
In case you have unique folder in docbase and you want to find documents in this folder
select * from dm_document where any i_folder_id in (select r_object_id from
dm_folder where object_name='unique_folder_name')