Domanda

Sto cercando di scrivere una query in Access 2010. Ho una tabella:

power

Il nome della tabella è power.Sto provando a scrivere l'istruzione IF:

Select IIf(power.gain_type = 'D', power.gain_max + 2.15)

Se gain_type è uguale a D, allora gain_max somma 2.15

Ad esempio:

14,8 + 2,15= 16,95.

Grazie in anticipo!

È stato utile?

Soluzione

Ora mi chiedo come inserire un'istruzione ELSEIF."IF (gain_type= 'D') {gain_max + 2.15} ELSEIF (gain_type= 'I') {gain_max-2.15} ELSE {gain_max}

Puoi utilizzare SWITCH

Select power.gain_max + Switch(power.gain_type='D', 2.15,
                               power.gain_type='I', -2.15,
                               true, 0)
from power

o annidare / concatenare gli IIF

Select power.gain_max + IIf(power.gain_type='D', 2.15,
                        IIf(power.gain_type='I', -2.15, 0))
from power

Originale

Questo fa la selezione

Select IIf(power.gain_type='D', power.gain_max+2.15, power.gain_max)
from power

Stai tentando di aggiornare?

update power
set gain_max = gain_max+2.15
where gain_type='D'

Puoi anche utilizzare il fatto che TRUE= -1 in Access

Select power.gain_max-2.15*(power.gain_type='D')
from power

Riferimenti

Altri suggerimenti

La sintassi è iif(condition, value_if_true, value_if_false).Se aggiungi un terzo parametro dovresti andare bene:

IIf(power.gain_type='D', 
    power.gain_max+2.15,
    power.gain_max)

Risultato: IIf ([gain_type]="D", [gain_max] +2.15, [gain_max])

inserisci qui la descrizione dell'immagine

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top