PDA

View Full Version : PROBLEMA in SQL! Help


dani&l
29-01-2002, 17:41
Dunque ho un problema urgente è stò diventando scemo! Ho una tabella che contiene: codice, data , prezzo.

X un problema ho scoperto che mancano dei prezzi. Siccome i prezzi dello stesso codice sono quasi sempre uguali, volevo aggiornare la tabella mettendo, dove trovava il prezzo a 0, il prezzo più vicino dello stesso codice.

es:

Cod - data - prezzo

13 - 01/01/01 - 5000
13 - 02/01/01 -
13 - 04/01/01 -
13 - 05/02/01 - 5000
14 - 03/01/01 - 8500
14 .......... .............

dovrei riempire i due codici 13 con prezzo null mettendo il prezzo 5000 in questo caso.

In sql riesco tramite select o a visualizzare quelli senza prezzo o quelli con prezzo, ma come faccio a mettere tutto insieme x fare un update giusto ?? Help, altrimenti devo mettirli a mano, e sono circa 340!!!

badaze
29-01-2002, 19:58
Che database è ? SQL server, un'altro ?

dani&l
30-01-2002, 07:04
Il database è Oracle.

dani&l
30-01-2002, 07:46
Altrimenti potrei una soluzione parziale che mi consente nel frattempo di aggiornafe un pò di prezzi: prendo i prezzi da un'altra tabella, solo che come faccio a fare l'update ??

TAB1 ho il campo codice, prezzo
TAB2 ho il campo cod2,prezz2

io devo aggiornare il prezzo della tab1 con quello della tab2 con lo stesso codice:

update TAB1 set prezzo=prezz2 where codice=cod2 and prezzo is null;


solo che così non funziona xchè non sà a quale tabella appartiene cod2. Potrebbe funzionare così:

update TAB1 set prezzo = (select prezz2 from TAB1,TAB2 where
codice=cod2) where prezzo is null;


Grazie.

cionci
30-01-2002, 09:13
E nel secondo modo funziona ?

Il prezzo è un intero ? Lo spero...altrimenti se è un testo non è detto che is null funzioni...perchè potrebbe essere una stringa vuota invece di un valore null...

dani&l
30-01-2002, 10:13
Il prezzo è un number, ed il secondo modo sembra abbia funzionato, ma così:

update TAB1 set prezzo= ( select prez2 from TAB2 where cod2=codice) where prezzo is null


In questo modo + di metà me gli ha aggiornati, i rimanenti ho finito adesso di aggiornarli a mano :(