В комментарии вы предоставили этот пример данных (я создал имена полей):
CompanyName CompanyYear Amount Website Contact
starbucks 2009 100$ starbucks.com matt bucky
starbucks 2010 200$ null null
Поскольку вы сказали, что названия компаний совпадают, что-то вроде этого:
UPDATE tblCompany INNER JOIN tblCompany AS C2 ON tblCompany.CompanyName = C2.CompanyName
SET tblCompany.Website = C2.Website
WHERE tblCompany.Website Is Null AND C2.Website Is Not Null
AND tblCompany.CompanyYear=2010 AND C2.CompanyYear=2009;
Предполагается, что вы хотите обновить записи 2010 года данными из записей 2009 года, и что для каждой компании существует только одна запись для каждого года.
Чтобы обновить имя контакта, необходимо выполнить запрос еще раз, соответствующим образом изменив оператор SET и предложение WHERE:
UPDATE tblCompany INNER JOIN tblCompany AS C2 ON tblCompany.CompanyName = C2.CompanyName
SET tblCompany.Contact = C2.Contact
WHERE tblCompany.Contact Is Null AND C2.Contact Is Not Null
AND tblCompany.CompanyYear=2010 AND C2.CompanyYear=2009;
Если есть более старые записи, которые могут содержать полезные данные, можно написать несколько сложных SQL с подзапросами, которые бы делали все это за один раз, но япросто сделать это с несколькими запусками одного и того же SQL, сначала сравнив 2010 с 2009, затем с 2008, затем с 2007 и т. д. В конечном счете больше не будет записей Null.
(это такжебольше похоже на вопрос StackOverflow, чем на ServerFault, но что я знаю? Я никогда не могу понять, что и где)