PDA

View Full Version : [SQL][principiante] salvare risultato query in una variabile


ramarromarrone
04-02-2008, 15:47
ciao a tutti

volevo sapere come faccio a salvare in una variabile intera il risultato di una query.

mi spiego meglio devo creare un trigger(in postgre) che mi aggiorni il numero dei posti liberi ogni volta che viene effettuata una prenotazione...

quindi devo fare una query che mi dica quanti sono i posti richiesti dall'ultima prenotazione,salvare il valore in una variabile intera e aggiornare la tabella posti liberi facendo posti_liberi-variabile.

sulla documentazione non ho trovato nulla...

mailand
04-02-2008, 16:26
in una procedura, dichiari la variabile

es. postioccupati=integer

select count(*)
into postioccupati
from tabella

in oracle funziona cosė...

ramarromarrone
04-02-2008, 16:30
in una procedura, dichiari la variabile

es. postioccupati=integer

select count(*)
into postioccupati
from tabella

in oracle funziona cosė...

sono riuscito a risolvere cosė

DECLARE
a prenotazione.numero_posti%TYPE;
b prenotazione.id_prenotazione%TYPE;
BEGIN
SELECT numero_posti INTO a FROM prenotazione WHERE id_prenotazione = ANY (SELECT MAX(id_prenotazione) FROM prenotazione);
SELECT spettacolo INTO b FROM prenotazione WHERE id_prenotazione = ANY (SELECT MAX(id_prenotazione) FROM prenotazione);
UPDATE programmazione SET posti_liberi = posti_liberi-a WHERE id_programmazione = b;
RETURN NULL;
END;

non credo che postgre supporti la grammatica di oracle
comunque grazie dell'interessamento