|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Bannato
Iscritto dal: Aug 2004
Messaggi: 180
|
[SQL] Update difficile...
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 |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: May 2004
Città: Londra (Torino)
Messaggi: 3692
|
Ma SQL quale engine?
Oracle, SqlServer o altri?
__________________
Se pensi che il tuo codice sia troppo complesso da capire senza commenti, e' segno che molto probabilmente il tuo codice e' semplicemente mal scritto. E se pensi di avere bisogno di un nuovo commento, significa che ti manca almeno un test. |
|
|
|
|
|
#3 |
|
Bannato
Iscritto dal: Aug 2004
Messaggi: 180
|
Il DB e' Oracle 9.2.0.7.0
|
|
|
|
|
|
#4 |
|
Junior Member
Iscritto dal: Dec 2010
Messaggi: 18
|
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 |
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Mar 2005
Città: Morimondo city
Messaggi: 5491
|
In PL/SQL ORACLE
Codice:
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;
__________________
Khelidan Ultima modifica di khelidan1980 : 28-04-2011 alle 16:00. |
|
|
|
|
|
#6 |
|
Bannato
Iscritto dal: Aug 2004
Messaggi: 180
|
Grazie mille! Funziona
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 06:03.



















