Ms Access заменить вопрос - PullRequest
0 голосов
/ 10 сентября 2010

Итак, мне нужно обновить базу с 6000 строк дубликатов.Дубликаты - это компании, которые имеют общий числовой код.Моя проблема в том, что я заменяю только одно или два поля за раз, то есть веб-сайт компании, который был предоставлен в 2009 году, но не был предоставлен в 2010 году. Это все, что необходимо заменить.Я новичок доступа и делаю все линии вручную, это заставляет меня задуматься о насилии.Мне просто нужно знать, возможно ли автоматизировать этот процесс.Я знаю, что мог бы написать код для этого, если значение 2010 равно нулю, его необходимо заменить.Любая помощь будет отличной.Я также буду рядом, если вам понадобится дополнительная информация о проблеме.

1 Ответ

0 голосов
/ 11 сентября 2010

В комментарии вы предоставили этот пример данных (я создал имена полей):

  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, но что я знаю? Я никогда не могу понять, что и где)

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