Привіт, у мене є таблиця, яка виглядає приблизно так:
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
Моє завдання полягає в тому, щоб заповнити значення для кожного idі дату, доки не стане відомо нове значення. Наприклад, я хотів би вставити значення 10 на 1/2/2011 для id1 і значення 20 на 1/3/2011 для id2. Я використовую mysql. Будь-яка допомога в цьому буде дуже вдячна.
Відповіді:
0 для відповіді № 1У mysql, насправді немає супер-ефективного способу зробити це (що я можу придумати), але це може бути виконано за допомогою корельованого підзапиту:
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;
Це припускає, що я правильно інтерпретую логіку. Дайте мені знати, якщо це правильна ідея.