Ciao a tutti,
ho una query che serve a decrementare il valore di un campo dinamicamente:
UPDATE PRODOTTI SET Available = Available-#Quantita# WHERE CODE = '#CODE#'
#Quantita# potrebbe anche essere superiore ad Available quindi la sottrazione darebbe un numero negativo.
Nessun problema tranne che non vorrei inserire un numero negativo ma 0.
Utilizzo spesso la funzione NVL(campo,valore) dove se "campo" è NULL viene restituito "valore",
questo però riguarda lo statement SELECT
Tipo:
SELECT NVL(MAX(ID),'0') + 1 AS LAST_ID FROM Table
questa query seleziona l' ID con valore maggiore e gli addiziona 1,
nel caso nella tabella non ci fosse ancora nessun record, MAX(ID) restituirebbe NULL quindi
NVL lo convertirebbe in '0' ovvero 0+1=1 e non NULL, formula classica dell'autoincrement.
Esiste qualcosa che faccia al mio caso?
Grazie e ciao
Luigi