Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
App. WinForms / WPF .NET
[VB.NET]Valore massimo in un campo
domenica 20 gennaio 2008 - 10.52
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
nioMatrix
Profilo
| Junior Member
83
messaggi | Data Invio:
dom 20 gen 2008 - 10:52
Salve a tutti,
volevo chiedervi se è possibile, in una colonna di tipo testo in cui sono memorizzate stringhe e numeri, ottenere il valore numerico massimo.
Ho provato in questo modo:
SELECT MAX(ID_ARTICOLO) FROM ARTICOLI
ma in questo modo mi restituisce l'ultimo record della tabella ordinata in modo alfabetico.
Spero di essere stato chiaro.
Salve
StefanoLep
Profilo
| Senior Member
248
messaggi | Data Invio:
dom 20 gen 2008 - 12:11
Ciao, questo dovrebbe andar bene:
SELECT top 1
(case when (isnumeric (ID_ARTICOLO) = 1) then ID_ARTICOLO
else 0
end) as ID_ARTICOLO_Num
FROM Articoli
Order by ID_ARTICOLO_Num Desc
E' la passione che genera il progresso :-)
nioMatrix
Profilo
| Junior Member
83
messaggi | Data Invio:
dom 20 gen 2008 - 12:50
Ho provato, ma mi viene restituito un errore quando vado ad eseguire la query
StefanoLep
Profilo
| Senior Member
248
messaggi | Data Invio:
dom 20 gen 2008 - 13:17
Io ho provato con sql2000, tu che db usi?
E' la passione che genera il progresso :-)
nioMatrix
Profilo
| Junior Member
83
messaggi | Data Invio:
dom 20 gen 2008 - 13:25
Un DataBase Microsoft Access 2000
nioMatrix
Profilo
| Junior Member
83
messaggi | Data Invio:
dom 20 gen 2008 - 13:46
cmq grazie al tuo aiuto da cui ho preso spunto ci sono riuscito.
Ho fatto in questo modo:
SELECT MAX(ID_ARTICOLO) FROM ARTICOLI WHERE ISNUMERIC(ID_ARTICOLO)=TRUE
Grazie mille
nioMatrix
Profilo
| Junior Member
83
messaggi | Data Invio:
dom 20 gen 2008 - 14:13
No scusami, in questo modo mi trova solo i valori massimmi da 1 a 9 , infatti se c'è 10 non lo trova.
In poche parole devo duplicare un elemento e devo trovare il campo ID_ARTICOLO, che è la chiave primaria, da assegnare al nuovo record.
StefanoLep
Profilo
| Senior Member
248
messaggi | Data Invio:
dom 20 gen 2008 - 15:20
Hoprovato la tua query con access 2000 e funziona anche con numeri maggiori di 10, puoi fare una copia del db con la sola tabella che ti interessa (con una decina decina di record) e allegarlo alla prossima replica così vedo se c'è qualcosa nella struttura della tabella che non fa funzionare la query.
E' la passione che genera il progresso :-)
SSUPERPIPPO
Profilo
| Guru
1.095
messaggi | Data Invio:
dom 20 gen 2008 - 15:23
>No scusami, in questo modo mi trova solo i valori massimmi da
>1 a 9 , infatti se c'è 10 non lo trova.
>In poche parole devo duplicare un elemento e devo trovare il
>campo ID_ARTICOLO, che è la chiave primaria, da assegnare al
>nuovo record.
>
Il tuo problema è legato al tipo di campo; se fosse un campo numerico allora il risultato sarebbe corretto, probabilmente il tuo campo è di tipo Testo per cui l'estrazione del massimo è legato all'ordinamento Alfabetico (tra 9 e 10 il maggiore risulterà sempre 9).
La soluzione è convertire nella SELECT il valore del campo in questo modo (vado a memoria):
SELECT Max(CInt([ID_ARTICOLO])) AS ID FROM TuaTabella WHERE Isnumeric(ID_ARTICOLO);
Fammi sapere, ciao
Alessandro
http://blogs.dotnethell.it/alebadalin
nioMatrix
Profilo
| Junior Member
83
messaggi | Data Invio:
dom 20 gen 2008 - 17:49
Grazie mille SSUPERPIPPO il tuo metodo, almeno da quello che ho potuto constatare, funziona alla perfezione.
Ciao
Torna su
Stanze Forum
Elenco Threads
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?
Dopo esserti registrato potrai chiedere
aiuto sul nostro
Forum
oppure aiutare gli altri
Consulta le
Stanze
disponibili.
Registrati ora !