Как установить значение ячейки, используя результат параметризованного запроса SQL, используя Power Query?

У меня есть лист со столбцами A, B и C. Затем мне нужно выполнить запрос на моем SQL Server, используя значения из столбцов A и B, чтобы найти значение, которое следует поместить в столбец C.

Я создал запрос следующим образом:

SELECT * FROM Tablename

Затем добавлены шаги фильтрации с учетом двух параметров, которые я создал в Power Query Editor.

Теперь, как я могу подключить этот существующий рабочий лист к запросу, передавая значения ячеек в качестве параметров, чтобы получить результат (одна строка)?

ОБНОВИТЬ

Добавление дополнительной информации...

Мой рабочий лист выглядит так:

Column A | Column B | Column C
   1     |  223     |    ?
   2     |  545     |    ?
   8     |  542     |    ? 

Тогда в моей таблице базы данных есть все эти 3 столбца (наряду с несколькими другими, которые не важны), мне нужно сравнить столбцы A и B на рабочем листе с эквивалентными столбцами A и B в таблице базы данных, чтобы вернуть значение столбца C из база данных (без импорта всей таблицы в новый лист).

3 ответа

Поскольку вы не указали, подключены ли вы к МОЕМУ SQL или нет, поэтому я хотел бы показать вам самый простой процесс экспорта файла Excel в MY Sql.

Выполните следующие действия, чтобы экспортировать данные листа Excel в таблицу MySQL.

  1. Выберите вкладку "Данные", нажмите "MySQL для Excel", чтобы открыть панель задач "MySQL для Excel".

  2. В "Открыть соединение MySQL" дважды щелкните существующее локальное или удаленное соединение, чтобы отобразить доступные схемы базы данных.

  3. Выберите "Схема" и нажмите "Далее", чтобы отобразить все объекты базы данных.

  4. Затем выберите ячейки на листе для экспорта, нажмите "Экспорт данных Excel в новую таблицу".

  5. Теперь укажите, должна ли первая строка использоваться в качестве имени столбца.

  6. Затем введите уникальное имя таблицы и выберите параметры сортировки для использования в новой таблице.

  7. Выберите столбец Первичный ключ.

  8. Примените соответствующие параметры для столбцов.

  9. Наконец, нажмите "Экспорт данных", чтобы создать новую таблицу с данными.

Другой метод - ODBC для создания DSN.

Примечание,,, Select * from TableName, извлекает все записи из таблицы для всех столбцов.

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

Вот один пример.

DECLARE @Parameter VARCHAR(20)
SET @Parameter = 'Amit'

SELECT *
FROM Table
WHERE Name = @Parameter

Надеюсь, это поможет вам.

Ниже представлен лучший ответ, который я могу вам предложить, после того, что я понял, прочитав комментарий к моему Первому ответу и ОП (Вопрос, опубликованный вами), снова.

Способ 1. Экспортируйте данные SQL-запроса в Excel.

Запрашивая данные, в окне результатов просто щелкните верхнюю левую ячейку, чтобы выделить записи, затем щелкните правой кнопкой мыши верхнюю левую ячейку и нажмите "Сохранить результаты как".

Вы можете выбрать лучший тип файла для экспорта, это файл CSV.

Другими словами, экспортируйте данные SQL-запросов в Excel.

Способ 2: создать оператор запроса для экспорта в Excel.

INSERT INTO OPENROWSET 
   ('Microsoft.Jet.OLEDB.4.0', 
   'Excel 9.0;Database=D:\Sales.xlsx;','SELECT * FROM Sales where Code = 1000')

Другое написано ниже. Запрос непосредственно помещает данные в Excel в виде файла CSV.

SELECT * FROM Sales where Code = 1000 INTO OUTFILE 'D:/Sales.CSV' FIELDS TERMINATED BY ','  
 ENCLOSED BY '"' LINES TERMINATED BY '\n';

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

Я верю, что это поможет вам.

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

Теперь вам нужно сослаться на значение ячейки как значения параметра.

Попробуйте эти шаги.

  1. Выберите таблицу. Перейдите на вкладку "Дизайн" и выберите "Свойства".
  2. Нажмите кнопку рядом с именем подключения.
  3. Перейдите на вкладку "Определение". Если вы правильно создали параметризованный запрос, кнопка Parameter должна быть включена для вас.
  4. Для указанных параметров теперь выберите переключатель "Получить значение из следующей ячейки" и включите функцию "Обновлять автоматически" при изменении значения ячейки.
  5. Нажмите OK во всех диалоговых окнах и выйдите.

Теперь в идеале запрос должен выполняться каждый раз, когда вы обновляете значения в своих ячейках листа Excel.

Смотрите ниже пример на основе базы данных MS Access. Я надеюсь, что шаги должны быть очень похожи на SQL Server тоже. Исследуйте и экспериментируйте дальше. Надеюсь это поможет.

Другие вопросы по тегам