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
SQL Server 2000/2005/2008, Express, Access, MySQL, Oracle
Divisione per zero in una query
venerdì 22 maggio 2009 - 15.53
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
Barabas
Profilo
| Junior Member
102
messaggi | Data Invio:
ven 22 mag 2009 - 15:53
Salve a tutti.
ho un database in access e un'applicazione vb.net che elabora e visualizza i dati contenuti nel db.
fa tutto tramite query scritte in SQL standard... nessuna stored procedure.
una query molto complessa ha una colonna il cui valore è calcolato tramite una formula che prevede una divisione tra i valori di altre colonne... purtroppo è possibile che la divisione venga fatta per 0, e questo naturalmente genera errore.
vorrei evitare di fare questa divisione per zero.
ho visto che con le stored procedure è possibile usare istruzioni tipo le IF ed il CASE.
SQL standard non prevede nulla di simile?
non vorrei utilizzare le stored procedure, ma continuare ad usare le normali query.
qualsiasi consiglio è bene accetto.
grazie in anticipo
ciao
Barabas
lbenaglia
Profilo
| Guru
5.625
messaggi | Data Invio:
ven 22 mag 2009 - 15:57
>ho un database in access e un'applicazione vb.net che elabora
>e visualizza i dati contenuti nel db.
>fa tutto tramite query scritte in SQL standard... nessuna stored
>procedure.
Anche perché Access (o meglio JET) non offre le Stored Procedures
>una query molto complessa ha una colonna il cui valore è calcolato
>tramite una formula che prevede una divisione tra i valori di
>altre colonne... purtroppo è possibile che la divisione venga
>fatta per 0, e questo naturalmente genera errore.
>
>vorrei evitare di fare questa divisione per zero.
>ho visto che con le stored procedure è possibile usare istruzioni
>tipo le IF ed il CASE.
>SQL standard non prevede nulla di simile?
CASE aderisce allo standard ANSI SQL, ma JET SQL solo in parte.
Al sui posto puoi utilizzare la funzione IIF:
http://office.microsoft.com/it-it/access/HA012288531040.aspx
>grazie in anticipo
Prego.
Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org
Barabas
Profilo
| Junior Member
102
messaggi | Data Invio:
ven 22 mag 2009 - 16:54
grazie per la risposta celerissima!!
però purtroppo non credo mi risolva il problema, perdonami se non sono molto esperto ma se ho capito bene la funzione IIF è una funzione di access che si usa nelle maschere...
io non ho nessuna maschera, non ho un'applicazione access, io ho un'applicazione vb.net (non vba) che effettua query su un database access + o - nel modo seguente:
dim query as string="select (campo1/campo2) as quoziente from tabella"
dim com as oledbcommand
com.command=query
dim reader as oledbdatareader=com.executereader
purtroppo la query non è così semplice (sarà lunga almeno una ventina di righe) altrimenti mi basterebbe usare la clausola where...
mi servirebbe qualcosa (sempre in SQL standard) che oltre a evitare di fare la divisione per zero sostituisca il risultato con un valore di default o un 'null'...
appunto un qualcosa tipo if , sempre che esista...
sempre grazie in anticipo
ciao
Barabas
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 !