Как сделать запрос на обновление - PullRequest
0 голосов
/ 10 декабря 2011

У меня есть таблица с пятью полями,

| Почтовый индекс | Данные 1 | Данные 2 | Данные 3 | Код |

В моей таблице и приведенных ниже данных у меня есть тонны таких записей, поэтому существует много дубликатов данных для полей [данные 1], [данные2] и [данные 3]

 Zip | Data 1 | Data 2 | Data 3 | Code |
 123 | __A__ |__ B__ |__ C__ |_____ |
 234 | __A__ |__ B__ |__ C__ |_____ |
 456 | __A__ |__ B__ |______ |_____ |
 678 | __A__ |__ B__ |__ C__ |_____ |
 981 | __A__ |__ B__ |______ |_____ |

моя цель - найти подходящие значения строк, чтобы у меня был набор уникальных строк из них (который я создал по запросу, который мне дал)

| Data 1 | Data 2 | Data 3 | Code |
| __A__ |__ B__ |__ C__ |_____ |
| __A__ |__ B__ |______ |_____ |

Что я хотел сделать, так это просто ввести значение кода в этом запросе, чтобы оно отражалось в существующей таблице и отображало код во всех повторяющихся значениях

скажем, я ввожу эти данные в запрос (который по какой-то причине не могу ввести)

| Data 1 | Data 2 | Data 3 | Code |
| __A__ |__ B__ |__ C__ |__C1__ |
| __A__ |__ B__ |______ |__C2__ |

я хочу следующий вывод в таблицу

Zip | Data 1 | Data 2 | Data 3 | Code |
123 | __A__ |__ B__ |__ C__ |__C1__ |
234 | __A__ |__ B__ |__ C__ |__C1__ |
456 | __A__ |__ B__ |______ |__C2__ |
678 | __A__ |__ B__ |__ C__ |__C1__ |
981 | __A__ |__ B__ |______ |__C2__ |

Как я могу это сделать?

1 Ответ

1 голос
/ 10 декабря 2011

Сначала выберите отдельные значения и вставьте их во временную таблицу или в рабочую таблицу:

TempTable
Data1
Data2
Data3
Code null

Затем вставьте в таблицу отдельные строки

insert into TempTable (Data1, Data2, Data3)
select distinct data1, data2, data3 from myTable

Затем обновите временную таблицу любым кодом, который вы хотите для каждой записи. Все еще не уверены, имеете ли вы конкретное значение или хотите, чтобы оно было просто «уникальным» значением. Если уникальное значение, вы можете установить код в качестве идентификатора и пропустить этот шаг

update temptable set Code = '' where Data1 = x and Data2 = y and Data3 = z

Наконец, обновите исходную таблицу со значениями

update myTable
inner join tempTable 
   on [myTable].data1 = [tempTable].data1 
      and [myTable].data2 = [tempTable].data2 
      and [myTable].data3 = [tempTable].data3
  set [myTable].Code = [tempTable].Code;
...