PDA

View Full Version : [SQL] Update difficile...


holymind
27-04-2011, 15:27
Ciao a tutti,
ho bisogno di un aiuto per una update che fa la seguente cosa.


Date le tabelle padre e figlio cosi formate

padre
id stato codice
1 A null
2 B null

figlio
id stato codice data
1 pippo 15 08 luglio
1 pippo 17 07 luglio
2 pippo 18 03 luglio


deve fare l'update sulla tabella padre in questo modo
padre
id stato codice
1 A 15
2 B 18

Ossia fare l'update del codice, prendendolo dal relativo figlio
piu' recente. Data e' una data confrontabile senza problemi.

Grazie in anticipo

gugoXX
27-04-2011, 21:15
Ma SQL quale engine?
Oracle, SqlServer o altri?

holymind
27-04-2011, 23:45
Il DB e' Oracle 9.2.0.7.0

m-mad
28-04-2011, 12:36
Hai l'id che ti fa da chiave, fai una select con gli id uguali prendi il dato che ti interessa, lo tokenizzi con lo spazio come delimitatore e fai l'update.

Senza lavorare la stringa non credo tu possa farcela

khelidan1980
28-04-2011, 14:54
In PL/SQL ORACLE




begin
for X in
(select
FIGLIO.ID,
FIGLIO.CODICE
from figlio
inner join
(select FIGLIO.ID,
MAX(FIGLIO.DATA) data
from figlio
group by FIGLIO.ID
)son
on figlio.ID = son.ID
and FIGLIO.DATA = son.DATA
)
loop
update padre
set PADRE.CODICE = X.CODICE
where PADRE.ID = X.ID;
end loop;
end;


probabilmente c'č una soluzione pių semplice ma ho la mente contorta non posso farci nulla!

holymind
30-04-2011, 09:40
Grazie mille! Funziona :)