Salve a tutti,

ho la necessità di interrogare un database (in cui sono inseriti dati relativi alle Pagine e ai Menù di un portale) e ottenere un elenco così strutturato:

- NOME MENU 1
- Nome pagina 1.1
- Nome pagina 1.2
- Nome pagina 1.3

- NOME MENU 2
- Nome pagina 2.1
- Nome pagina 2.2
- Nome pagina 2.3
- Nome pagina 2.4
ecc....

Per fare ciò uso le seguenti query:

codice:
<%
SQLQuery = "SELECT * FROM Menu ORDER BY Horizontal ASC, Sort_Position_On_Page ASC"
Set RS = DBConnection.Execute(SQLQuery)
Do Until RS.EOF

	SQLQuery2 = "SELECT * FROM Pagine WHERE ID_MENU = " & RS.Fields("ID_MENU") & " ORDER BY " & RS.Fields("Link_Sorting") & " " & RS.Fields("Link_Order")
	Set RS2 = DBConnection.Execute(SQLQuery2) %>
		<div id="m<% = RS.Fields("ID_MENU") %>"><% = RS.Fields("Title") %></div>
		<ul class="elenco_ul"><%
		Do Until RS2.EOF %>
			<li id="p<% = RS2.Fields("ID_PAGE") %>"><% = RS2.Fields("Title") %><%
			RS2.MoveNext
		Loop %>
		[/list]<%
	RS2.Close
	Set RS2 = Nothing

	RS.MoveNext
Loop
RS.Close
Set RS = Nothing
%>
Da notare che nella seconda query l'ordinamento ORDER BY è determinato dai valori di due campi ottenuti dalla prima query "Link_Sorting" e "Link_Order", nello specifico:

Link_Sorting può assumere il valore ID_PAGE o Title o altro
Link_Order può assumere il valore ASC o DESC

Fin qui tutto ok e perfettamente funzionante.

Ora ho la necessità di paginare l'elenco visualizzando -N righe alla volta.
Di solito per fare ciò uso le proprietà dell'oggetto recordset (CacheSize, pageCount, pageSize), ma in questo caso, avendo due query nidificate, non posso a meno che non riduca le due query ad una sola mediante JOIN. Ma con una JOIN non posso specificare quell'ordinamento particolare di cui sopra...... o sì?
C'è un modo per far intervenire all'interno della query il valore di un campo invece del nome (?!??).
Oppure c'è un modo meno complicato per paginare l'elenco lasciando le due query invariate?

So che è una situazione complicata ma spero che qualcuno di voi avrà la pazienza di capirmi e aiutarmi.


Grazie anticipatamente,

Ciao