Самый быстрый способ сопоставить список имен в документе Excel с их идентификаторами в таблице поиска? - PullRequest
0 голосов
/ 14 сентября 2010

Для одного из моих проектов я отображаю список округов в раскрывающемся списке (этот список происходит из справочной таблицы, содержащей все графства). Клиент только что попросил, чтобы я ограничил его подмножеством по своему выбору. Подмножество было дано мне в таблице Excel, содержащей только имена (см. Ниже):

alt text

Я пытаюсь найти самый быстрый способ для меня сопоставить каждый из них с соответствующим идентификатором в исходной таблице поиска. Клиент не может дать мне эти идентификаторы. Имена здесь совпадают с именами в моей таблице (кроме случая).

Скорее всего, это будет единовременная вещь.

Может кто-нибудь предложить быстрый способ получить эти значения в запросе, чтобы мне не пришлось делать это вручную?

Когда я говорю быстро, я не говорю о скорости обработки, просто самое быстрое время начала и окончания, в результате которого я получаю соответствующие идентификаторы, используя любой доступный инструмент.

Примечание: я знаю, что, возможно, я мог бы сделать это вручную, за то время, которое потребуется для получения ответа, но я хотел бы узнать это для дальнейшего использования.

Ответы [ 2 ]

2 голосов
/ 14 сентября 2010

Вы можете выполнить запрос внешних данных в другой лист Excel с помощью

SELECT countryname, countryid FROM countries

, а затем использовать VLOOKUP, чтобы получить идентификаторы в листе, предоставленном клиентом

=VLOOKUP(A1,Sheet2!$A$1:$B$200,2,FALSE)

См. http://excelusergroup.org/blogs/nickhodge/archive/2008/11/04/excel-2007-getting-external-data.aspx для создания таблицы внешних данных в Excel 2007. Перейдите к части «Другие источники».

1 голос
/ 14 сентября 2010
  1. Поместите список в текстовый файл. Напишите сценарий powershell, который получит содержимое этого файла, а затем запросит вашу базу данных для вывода ключей. Вот грубый, грубый пример.

    get-content c: \ list.txt | ForEach-Object {invoke-sqlcmd -E -query "выберите бла-бла, где county =" _ $} | Format-Table

  2. Если у вас есть доступ к SSIS, вы, вероятно, могли бы сделать соединение между источником Excel и вашей таблицей.

  3. Вы можете загрузить таблицу Excel во временную таблицу, чтобы воспользоваться всеми вашими знаниями SQL-запросов.

  4. Я считаю ( и да, это правда ), что SQL может создать связанный сервер из электронной таблицы. Тогда вы можете присоединиться и все готово.

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