Ciao ho un tavolo che sembra qualcosa del genere:
Date ID Value
1/1/2011 id1 10
1/2/2011 id1 NULL
1/3/2011 id1 20
1/1/2011 id2 20
1/3/2011 id2 NULL
1/4/2011 id2 30
Il mio compito è di inoltrare i valori per ogni ide data fino a quando un nuovo valore diventa noto. Ad esempio, vorrei inserire il valore 10 in 1/2/2011 per id1 e il valore 20 in 1/3/2011 per id2. Sto usando mysql. Qualsiasi aiuto su questo sarebbe molto apprezzato.
risposte:
0 per risposta № 1In mysql, non c'è davvero un modo super efficiente per fare in modo che ciò accada (che io possa pensare) ma potrebbe essere realizzato usando una subquery correlata:
UPDATE table
SET value = (SELECT value
FROM Table AS T1
WHERE T1.ID = table.ID
and t1.DATE <= table.Date
LIMIT 1)
WHERE table.Value IS NULL;
Questo presume che io stia interpretando correttamente la logica. Fammi sapere se questa è l'idea giusta.