Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2003
    Messaggi
    1,610

    evitare somme alebriche mysql

    salve

    ho un problema con dei calcoli
    ho una tab ordine che ha dei campi
    costopub,costopriv

    io devo fare castopub-(costopriv-altro)

    solo a volte succede che costopriv è = 0 e altro >0
    quindi ho un valore negativo
    il risultato di mysql è
    costopub + (costopriv-altro) come mai ?

    c'è un modo per evitare questo ?

    tipo ho 60.90 - (0-5.00) = 74,90

    tradotto questo pezzo di codice

    SELECT ( 69.90 ) - ( ( 0.0 ) - 5.00 )
    R.

  2. #2
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    forse dovresti spiegare che risultato vorresti ottenere... l'operazione è corretta così com'è... nel caso che "costopriv" sia negativo cosa vorresti ottenere come risultato? A prima vista sembra errata l'impostazione dell'operazione algebrica, che MySQL esegue correttamente.

    Infatti:
    x - (y - z) = x - y + z

    inoltre parli di "segno" di "costopriv", ma dal discorso fatto mi pare che l'elemento discriminante sia se "costopriv" è maggiore oppure no di "altro"

    Fai qualche esempio numerico e spiega che risultato vorresti ottenere.

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2003
    Messaggi
    1,610
    Originariamente inviato da eiyen
    forse dovresti spiegare che risultato vorresti ottenere... l'operazione è corretta così com'è... nel caso che "costopriv" sia negativo cosa vorresti ottenere come risultato? A prima vista sembra errata l'impostazione dell'operazione algebrica, che MySQL esegue correttamente.

    Infatti:
    x - (y - z) = x - y + z

    inoltre parli di "segno" di "costopriv", ma dal discorso fatto mi pare che l'elemento discriminante sia se "costopriv" è maggiore oppure no di "altro"

    Fai qualche esempio numerico e spiega che risultato vorresti ottenere.
    vorrei ottenere x cioè fare in modo che se (y-z) è minore di x non torni x o faccio
    x-0 = x
    R.

  4. #4
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    se ho capito vorresti fare l'operazione indicato salvo che la quantità tra parentesi sia negativa, nel qual caso non la vuoi considerare... cioè se ho ben capito...

    10 - (7 - 3) = 10 - 4 = 6 OK

    10 - (2 - 5) = 10 - (-3) = 10 + 3 = 13 NO, vorresti ottenere 10

    se è così potesti impostare l'operazione usando l'operatore IF, per esempio:

    dal semplice costopub - (costopriv-altro) a:

    costopub - (IF((costopriv-altro)>0, (costopriv-altro), 0))

    oppure

    IF((costopub - (costopriv-altro))>costopub, costopub, (costopub - (costopriv-altro))

    ...ricontrolla le parentesi tonde (!)

  5. #5
    Utente di HTML.it
    Registrato dal
    Feb 2003
    Messaggi
    1,610
    Originariamente inviato da eiyen
    se ho capito vorresti fare l'operazione indicato salvo che la quantità tra parentesi sia negativa, nel qual caso non la vuoi considerare... cioè se ho ben capito...

    10 - (7 - 3) = 10 - 4 = 6 OK

    10 - (2 - 5) = 10 - (-3) = 10 + 3 = 13 NO, vorresti ottenere 10

    se è così potesti impostare l'operazione usando l'operatore IF, per esempio:

    dal semplice costopub - (costopriv-altro) a:

    costopub - (IF((costopriv-altro)>0, (costopriv-altro), 0))

    oppure

    IF((costopub - (costopriv-altro))>costopub, costopub, (costopub - (costopriv-altro))

    ...ricontrolla le parentesi tonde (!)
    ma questo tramite mysql non è possibile ? solo cn sql
    R.

  6. #6
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    Originariamente inviato da yag
    ma questo tramite mysql non è possibile ? solo cn sql
    cosa intendi? cosa sono per te "mysql" e "sql" e come vuoi fare il controllo?

    Se lo vuoi fare a livello di SQL metti la funzione IF nelle query MySQL, se vuoi farlo a livello di PHP allora specifica come recuperi i dati (posta la parte di codice con la query)

  7. #7
    Utente di HTML.it
    Registrato dal
    Feb 2003
    Messaggi
    1,610
    Originariamente inviato da eiyen
    cosa intendi? cosa sono per te "mysql" e "sql" e come vuoi fare il controllo?

    Se lo vuoi fare a livello di SQL metti la funzione IF nelle query MySQL, se vuoi farlo a livello di PHP allora specifica come recuperi i dati (posta la parte di codice con la query)
    volevo fare tutto con mysql (sql) ma non so sapevo che supportasse gli if
    mysql

    ...
    R.

  8. #8
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    bene, prova un po' allora

  9. #9
    Utente di HTML.it
    Registrato dal
    Feb 2003
    Messaggi
    1,610
    Originariamente inviato da eiyen
    bene, prova un po' allora
    NON SO COME usare if
    R.

  10. #10
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    posta la riga PHP dove viene creata la query SELECT

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.