Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    [vba] e access - Media con SQL

    Salve, ho un campo voto di tipo testo di lunghezza 4. Tale campo è impostato su testuale per fare in modo di poter inserire i voti degli esami e delle tesi dei vari studenti (tipo 25, 30L,110,110L).

    che istruzione SQL uso per fare la media di tali voti se ho presente in mezzo anche i 30L e i 110L??

    Se non ho le "lodi" sul voto tutto funziona perfettamente... se invece ho qualche voto con la lode la cosa non funziona! Esiste qualche istruzione sql che mi faccia la conversione della stringa in numero?!
    http://www.neonargon.com/
    ----:::[ GoTeNsSj4 ]:::----

  2. #2
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    Usa la funzione Val() :

    codice:
    val("30L")
    restituisce: 30
    
    val("25") + val("30L") + val("110") + val("110L")
    Restituisce: 275
    Ciao

  3. #3
    si, ma quelle istruzioni sono in VBA! Io volevo sapere se esistono funzioni di SQL che permettono di fare direttamente sul codice SQL quello che fa proprio la funzione Val() di VBA!

    per esempio, se ho la seguente istruzione SQL : "SELECT Avg(VotoEsame) as Media FROM TblProva", volevo sapere se poteva esistere una cosa simile a "SELECT Avg(Val(VotoEsame)) as Media FROM TblProva" !

    Grazie a tutti!
    http://www.neonargon.com/
    ----:::[ GoTeNsSj4 ]:::----

  4. #4
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    Scusa, ma avendo visto che hai messo i tag VBA e ACCESS pensavo usassi VBA.

    Di Access lo confesso, non ne so una mazza, ma in SQL non mi pare proprio che esista quello che chiedi tu:
    codice:
    SELECT Avg(Val(VotoEsame))
    Credo che dovrai crearti una tabella di appoggio in cui salvi i dati numerici, e poi su quelli fai la AVG().

    In VB6 è quasi banale, ma in codice vba di Access non saprei come indirizzarti...
    Magari è uguale a VB6

    Ma qualcuno ti verrà in aiuto, vedrai...

    Ciao

  5. #5
    riusciresti a postarmi un po' di codice su cui poi posso basarmi?! Grazieee!
    http://www.neonargon.com/
    ----:::[ GoTeNsSj4 ]:::----

  6. #6
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    Ma codice per cosa, esattamente?
    Se è codice generico lo trovi già sulla guida con tutte le spiegazioni.

    Comunque è una cosa così:

    codice:
    SELECT Cognome, Nome, Val(voto) as VotoN INTO Voti 
    FROM Studenti
    Avrai la nuova tabella Voti in cui il campo VotoN conterrà il Voto numerico.

    Puoi verificarlo con

    codice:
    SELECT * FROM Voti
    Ciao

  7. #7
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923

    Re: [vba] e access - Media con SQL

    Originariamente inviato da GoTeNsSj4
    Salve, ho un campo voto di tipo testo di lunghezza 4. Tale campo è impostato su testuale per fare in modo di poter inserire i voti degli esami e delle tesi dei vari studenti (tipo 25, 30L,110,110L).

    che istruzione SQL uso per fare la media di tali voti se ho presente in mezzo anche i 30L e i 110L??

    Se non ho le "lodi" sul voto tutto funziona perfettamente... se invece ho qualche voto con la lode la cosa non funziona! Esiste qualche istruzione sql che mi faccia la conversione della stringa in numero?!
    Penso che al fine della normalizzazione del tuo db sarebbe più corretto se per i voti degli esami usassi un campo di tipo intero, e per l'eventuale lode un campo di tipo sì/no.

    Non mi è chiaro poi come faccia a fare media tra voti dei singoli esami e di laurea.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.