Ciao a tutti,
come posso fare per stampare tutti i records di una tabella meno l'ultimo?
Saluti,
Carlo
Ciao a tutti,
come posso fare per stampare tutti i records di una tabella meno l'ultimo?
Saluti,
Carlo
Prova così:
Così ti esclude l'ultimo più recente.codice:select * from tabella where id_record < (select max(id_record) from tabella)
Tu intendi questo o l'ultimo più vecchio?
In caso dovrebbe andare bene questa:
codice:select * from tabella where id_record > (select min(id_record) from tabella)
Provare paura per un qualcosa che ti possa capitare nel futuro non ti evita quell'evento,ti fa soltanto vivere un presente sbagliato!
ciao Maximum,
grazie per il consiglio; ho provato a fare come hai detto ma il risultato è che stampa a video il record (uno dei due presenti nel database) che soddisfa la richiesta 2 volte invece che una, come se lo visualizzasse anche al posto dell'altro che viene escluso. Ti posto il codice.
Sub HomeScrollNews (iTop)
Dim oCn, oRs, rSQL
Dim testo
Set oCn = DBConnexion(DB_MAIN)
rSQL = "SELECT * FROM news, versions WHERE nDate < '" & DateTimeToString(Now()) & "' AND nID < (select max(nID)from news)AND nValid=1"
rSQL = rSQL & " ORDER BY nDate DESC"
Set oRs = DBRecordSet(oCn, rSQL)
CreateTopTable "TopNewsLinks", GetTranslation("LANG_TOP") & " " & iTop & " - " & GetTranslation("LANG_NEWS") & sTitleCat
Response.Write "<MARQUEE behavior='scroll' align='center' direction='up' height='100' scrollamount='2' scrolldelay='160' onmouseover='this.stop()' onmouseout='this.start()'>" & vbCRLF
If Not oRs.EOF Then
While Not oRs.EOF
Response.Write "" & CodeMessage(oRs("nTitle"), False) & "
" & vbCRLF
Response.Write "<span style=""text-align: left;"">Inserito il" & GetDateLitteralDDMMYYYY(StringToDate(oRs("nDate")) ) &"da" & oRs("nAuthor") & "</span>
"
Response.Write "Clicca <a href="""
if oRs("nURL") <> "" then
Response.Write oRs("nURL")
else
Response.Write "/news.asp"
end if
Response.Write " "">qui</a>per raggiungere l'indirizzo del sito
"
if oRs("nURL") <> "" then
Response.Write "[img][/img]"
end if
testo = oRs("nHeader")
testo = Replace (testo,"", "")
testo = Replace (testo,"", "")
testo = Replace (testo,"", "")
testo = Replace (testo,"", "")
testo = Replace (testo,"", "<u>")
testo = Replace (testo,"", "</u>")
testo = Replace (testo,"[s]", "<s>")
testo = Replace (testo,"[/s]", "</s>")
testo = Replace (testo,"[cit]", "<cit>")
testo = Replace (testo,"[/cit]", "</cit>")
testo = Replace (testo,"[url]", "qui")
Response.write testo & "
"
Response.Write "Letto:" & oRs("nRead") & "volte
"
Response.Write "<div style=""padding-bottom: 30px;"">"&"Dettagli...</div>"
Response.Write "<hr width=""90"" align=""center""><div style=""padding-bottom: 10px;""></div>"
oRs.MoveNext
WEnd
oRs.Close
Set oRs = Nothing
oCn.Close
Set oCn = Nothing
Questa è la parte interessata.
A me funzionabo entrambe quelle che ti ho postato, provandole su un DB mio.
Partendo dal presupposto che la query è questa:
Prova ad eseguire su access solamente la:codice:rSQL = "SELECT * FROM news, versions WHERE nDate < '" & DateTimeToString(Now()) & "' AND nID < (select max(nID)from news)AND nValid=1" rSQL = rSQL & " ORDER BY nDate DESC"
vedi che valore torna.codice:select max(nID)from news
Poi, per logica, sapendo questo e provandolo nella query principale:
Hai il risultato.codice:rSQL = "SELECT * FROM news, versions WHERE nDate < '" & DateTimeToString(Now()) & "' AND nID < <VALORE_DELLA_SELECT_MAX> AND nValid=1" rSQL = rSQL & " ORDER BY nDate DESC"![]()
Provare paura per un qualcosa che ti possa capitare nel futuro non ti evita quell'evento,ti fa soltanto vivere un presente sbagliato!
Grazie Maximum,
ho evitato che mi riportasse ogni record 2 volte mettendo questo subito sotto la query:
If sXMLVersion <> "" Then rSQL = rSQL & " AND vCode='" & sXMLVersion
& "'"
If sCategory <> "" Then rSQL = rSQL & " AND nCategory=" & iCategory
Francamente però non ho capito come mai questo accada; queste righe le ho trovate in un altra subroutines del cms che uso.
Forse quelle due righe della subroutine, davano noie alla tua query.
P.S.:Comunque meglio così, hai risolto!![]()
Provare paura per un qualcosa che ti possa capitare nel futuro non ti evita quell'evento,ti fa soltanto vivere un presente sbagliato!
Si, grazie ai tuoi consigli!!
Ascolta, se invece metto una query come questa
AND nID = (select min(nID)from news)" & + itop & "AND nValid=1"
mi restituisce il seguente errore:
ErroreSQL -2147217900: [Microsoft][Driver ODBC Microsoft Access] Errore di sintassi (operatore mancante) nell'espressione della query 'nDate < '20051211 10:27:32' AND nID = (select min(nID)from news)2AND nValid=1'.
SQL : SELECT * FROM news, versions WHERE nDate < '20051211 10:27:32' AND nID = (select min(nID)from news)2AND nValid=1
Dov'è il problema?come dovrei scrivere se volessi sommare al valore nID minimo quello contenuto nella variabile itop?
Grazie tante
IL 2 in grassetto è la tua variabile e messa lì non ha nè capo nè coda...
La somma non la puoi fare nella query, la devi fare a parte.codice:'nDate < '20051211 10:27:32' AND nID = (select min(nID)from news)-->2<-- AND nValid=1'.
Provare paura per un qualcosa che ti possa capitare nel futuro non ti evita quell'evento,ti fa soltanto vivere un presente sbagliato!
ok, grazie...ma come faccio a farla a parte?quindi sommare il valore di una variabile a quello contenuto nella funzione dellla query che riporta il valore minimo?