Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Aug 2004
    Messaggi
    433

    [mysql] Update condizionale

    Ciao a tutti
    non riesco a cpaire come devo fare una query di update con una condizione all' interno

    in pratica ho la tabella timbrature

    ID = intero
    ORE = intero
    MINUTI = intero
    IMPORTO_TOTALE = decimale
    TARIFFA_A = intero
    TARIFFA_B = intero

    l'IMPORTO_TOTALE dovrebbe essere calcolato così:
    se la TARIFFA_B = 0 allora
    IMPORTO_TOTALE = ((TARIFFA_A*ORE)+(TARIFFA_A*MINUTI ))
    altrimenti
    IMPORTO_TOTALE = ((TARIFFA_B *ORE)+(TARIFFA_B *MINUTI ))

    la mia query è questa


    END IF
    codice:
      Update timbrature_mag
        IF TARIFFA_B=0 THEN IMPORTO_TOTALE =((TARIFFA_A*ORE)+(TARIFFA_A*MINUTI))
        ELSE IMPORTO_TOTALE =((TARIFFA_B*ORE)+(TARIFFA_B*MINUTI))
    che ovviamente non è corretta.
    sapete aiutarmi per cortesia?
    Donerò loro dei fiori... poiché... sotto le nuvole... tutto è così rozzo e sporco

  2. #2
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    UPDATE timbrature_mag
    SET IMPORTO_TOTALE =IF(TARIFFA_B >0, (TARIFFA_B*ORE)+(TARIFFA_B*MINUTI),(TARIFFA_A*ORE)+(TARIFFA_A*MINUTI))

    dalla formula si direbbe che tariffate le ore come i minuti, allo stesso importo...
    Ultima modifica di br1; 31-05-2018 a 17:37
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

  3. #3
    Utente di HTML.it
    Registrato dal
    Aug 2004
    Messaggi
    433
    Domani la provo, ti ringrazio, in realtà qui ho semplificato la tabella perché c'è anche la tariffa a minuti ma mi serviva capire il funzionamento, ti/vi farò sapere
    Donerò loro dei fiori... poiché... sotto le nuvole... tutto è così rozzo e sporco

  4. #4
    Utente di HTML.it
    Registrato dal
    Aug 2004
    Messaggi
    433
    Funziona! grazie della dritta.
    Donerò loro dei fiori... poiché... sotto le nuvole... tutto è così rozzo e sporco

  5. #5
    Utente di HTML.it L'avatar di nman
    Registrato dal
    Jan 2011
    residenza
    Milano
    Messaggi
    1,333
    Quote Originariamente inviata da Urbanus Visualizza il messaggio
    .......... ho la tabella timbrature

    ID = intero
    ORE = intero
    MINUTI = intero
    IMPORTO_TOTALE = decimale
    TARIFFA_A = intero
    TARIFFA_B = intero

    l'IMPORTO_TOTALE dovrebbe essere calcolato così: ..........
    Ok, la formula applicata è accettabile a livello di funzionalità .........
    ma mi chiedo se è giusto utilizzarla

    Ti faccio 2 comunque domande

    1°)
    hai un campo calcolato nella tabella
    a cosa ti serve ???
    non sarebbe meglio all'occorrenza calcolarti "al volo" il tuo risultato senza scriverlo in tabella ???

    2°)
    Il tuo campo calcolato decimale è il prodotto di 2 numeri interi
    Hai un motivo specifico ???
    Forse anche le tariffe dovrebbero essere decimali ......

    .
    Ultima modifica di nman; 02-06-2018 a 11:06

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.