засыпка данных с использованием MySQL - PullRequest
0 голосов
/ 03 ноября 2011

Привет, у меня есть таблица, которая выглядит примерно так:

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

Моя задача - переслать заполненные значения для каждого идентификатора и даты, пока не станет известно новое значение.Например, я хотел бы вставить значение 10 на 1/2/2011 для id1 и значение 20 на 01.01.2011 для id2.Я использую MySQL.Любая помощь по этому вопросу будет принята с благодарностью.

1 Ответ

0 голосов
/ 03 ноября 2011

В 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; 

Это предполагает, что я правильно интерпретирую логику. Дайте мне знать, если это правильная идея.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...