Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1
    Utente di HTML.it L'avatar di x69asterix
    Registrato dal
    Jan 2005
    Messaggi
    1,303

    [vb.net]SELECT SUM

    se io eseguo:
    codice:
    SELECT SUM(pasta) + SUM(pane)
    mi ritorna la somma complessiva. fin qui tutto bene, ma se nella tabella,
    pasta o pane non presenta il valore, non mi ritorna il totale. Invece come visualizzare
    comunque la somma di uno o dell'altro? con la query sopra?

  2. #2
    Utente di HTML.it L'avatar di M@LKAV
    Registrato dal
    Jan 2006
    Messaggi
    215

    Re: [vb.net]SELECT SUM

    Originariamente inviato da x69asterix
    se io eseguo:
    codice:
    SELECT SUM(pasta) + SUM(pane)
    mi ritorna la somma complessiva. fin qui tutto bene, ma se nella tabella,
    pasta o pane non presenta il valore, non mi ritorna il totale. Invece come visualizzare
    comunque la somma di uno o dell'altro? con la query sopra?

    Cosi dovrebbe andare:
    Isnull ti permette di impostare (in questo a caso) a zero se la somma non ti restituisce nulla.

    codice:
    SELECT ISNULL(SUM(pasta),0) + ISNULL(SUM(pane),0)
    La mia pazzia continua a prosciugare la mia anima

  3. #3
    Utente di HTML.it L'avatar di x69asterix
    Registrato dal
    Jan 2005
    Messaggi
    1,303
    Perfetto!!
    non sò forse passerò in OT, comunque ho un prolema con i decimali e non sò come uscirne fuori:


    ho campo di tabella sql dove imposto i decimali settati a 3, quindi mi aspetto 3 decimali dopo la virgola.
    mase io inserisco 4 decimali dopo la virgola questo lo arrotonda visto che si aspetta 3 decimali.
    Cosa fare?
    come settare il formato del campo

  4. #4
    Utente di HTML.it L'avatar di M@LKAV
    Registrato dal
    Jan 2006
    Messaggi
    215
    Originariamente inviato da x69asterix
    Perfetto!!
    non sò forse passerò in OT, comunque ho un prolema con i decimali e non sò come uscirne fuori:


    ho campo di tabella sql dove imposto i decimali settati a 3, quindi mi aspetto 3 decimali dopo la virgola.
    mase io inserisco 4 decimali dopo la virgola questo lo arrotonda visto che si aspetta 3 decimali.
    Cosa fare?
    come settare il formato del campo
    La tua esigenza in questo caso qual'e??
    Avere un campo a 4 decimali?
    Avere un campo a 3 decimali senza che quando viene inserito venga arrotondato?
    La mia pazzia continua a prosciugare la mia anima

  5. #5
    Utente di HTML.it L'avatar di x69asterix
    Registrato dal
    Jan 2005
    Messaggi
    1,303
    Originariamente inviato da M@LKAV
    La tua esigenza in questo caso qual'e??
    Avere un campo a 4 decimali?
    Avere un campo a 3 decimali senza che quando viene inserito venga arrotondato?
    è chiaro che potrei impostare il campo in formato stringa ed ottenere quello che mi serve, ma visto che questo campo lo richiamo da un SELECT SUM questo va in errore perchè si aspetta un altro formato.
    Comunque un campo che mi consente di eseguire la somma

  6. #6
    Utente di HTML.it L'avatar di M@LKAV
    Registrato dal
    Jan 2006
    Messaggi
    215
    Originariamente inviato da x69asterix
    è chiaro che potrei impostare il campo in formato stringa ed ottenere quello che mi serve, ma visto che questo campo lo richiamo da un SELECT SUM questo va in errore perchè si aspetta un altro formato.
    Comunque un campo che mi consente di eseguire la somma
    Quindi il risultato della tua SUM deve essere di tre decimali ho capito bene?
    La mia pazzia continua a prosciugare la mia anima

  7. #7
    Utente di HTML.it L'avatar di x69asterix
    Registrato dal
    Jan 2005
    Messaggi
    1,303
    Originariamente inviato da M@LKAV
    Quindi il risultato della tua SUM deve essere di tre decimali ho capito bene?
    no....
    il punto stà proprio qui!!
    io prima di inserire eseguo una divisione il risultato lo inserisco in tabella.
    esempio:

    imposto il formato del campo a tre decimali:

    eseguo 0,100 / 20 ottengo 0,005
    bene è il formato che si aspetta, lo inserisce correttamente.

    Ma se io eseguo:

    0,110 / 20 ottengo 0,0055
    quindi lo inserisce si, ma visto che si aspetta 3 decimali,
    lo inserisce così: 0,005

    potrebbero essere 3 come potrebbero essere 4

  8. #8
    Utente di HTML.it L'avatar di M@LKAV
    Registrato dal
    Jan 2006
    Messaggi
    215
    Originariamente inviato da x69asterix
    no....
    il punto stà proprio qui!!
    io prima di inserire eseguo una divisione il risultato lo inserisco in tabella.
    esempio:

    imposto il formato del campo a tre decimali:

    eseguo 0,100 / 20 ottengo 0,005
    bene è il formato che si aspetta, lo inserisce correttamente.

    Ma se io eseguo:

    0,110 / 20 ottengo 0,0055
    quindi lo inserisce si, ma visto che si aspetta 3 decimali,
    lo inserisce così: 0,005

    potrebbero essere 3 come potrebbero essere 4
    Se vuoi mantenere il campo a 3 decimali usa la funzione ROUND per arrotondarlo come preferisci.
    Altrimenti se vuoi che i casi con 4 decimali siano memorizzati cosi come vengono calcolati
    ti consiglio di impostare direttamente il campo

    Se invece vuoi memorizzare il risultato della divisione in qualsiasi caso,
    quindi potrebbero esser 2 decimali ma anche 6 ti consiglio di usare il tipo FLOAT
    La mia pazzia continua a prosciugare la mia anima

  9. #9
    Utente di HTML.it L'avatar di x69asterix
    Registrato dal
    Jan 2005
    Messaggi
    1,303
    Originariamente inviato da M@LKAV

    Se invece vuoi memorizzare il risultato della divisione in qualsiasi caso,
    quindi potrebbero esser 2 decimali ma anche 6 ti consiglio di usare il tipo FLOAT
    cioè impostare il campo dalle sue proprietà da decimal, a float?

  10. #10
    Utente di HTML.it L'avatar di M@LKAV
    Registrato dal
    Jan 2006
    Messaggi
    215
    Originariamente inviato da x69asterix
    cioè impostare il campo dalle sue proprietà da decimal, a float?
    Si.
    Cosi qualsiasi sia il numero di decimali lo inserisce senza problemi.
    Ricordati che oltre a ROUND per arrotondare puoi usare CAST o CONVERT per trasformarlo in un DECIMAL di quante posizioni decimali vuoi anche in un secondo momento.
    La mia pazzia continua a prosciugare la mia anima

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 © 2025 vBulletin Solutions, Inc. All rights reserved.