Как установить значение ячейки, используя результат параметризованного запроса 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 ответа
Исходя из того, что я лучше всего понимаю ваш вопрос, кажется, что вы успешно создали параметризованный запрос и, скорее всего, вы поставили? для значения поля, и вы можете получить результаты, передавая значения в него.
Теперь вам нужно сослаться на значение ячейки как значения параметра.
Попробуйте эти шаги.
- Выберите таблицу. Перейдите на вкладку "Дизайн" и выберите "Свойства".
- Нажмите кнопку рядом с именем подключения.
- Перейдите на вкладку "Определение". Если вы правильно создали параметризованный запрос, кнопка Parameter должна быть включена для вас.
- Для указанных параметров теперь выберите переключатель "Получить значение из следующей ячейки" и включите функцию "Обновлять автоматически" при изменении значения ячейки.
- Нажмите OK во всех диалоговых окнах и выйдите.
Теперь в идеале запрос должен выполняться каждый раз, когда вы обновляете значения в своих ячейках листа Excel.
Смотрите ниже пример на основе базы данных MS Access. Я надеюсь, что шаги должны быть очень похожи на SQL Server тоже. Исследуйте и экспериментируйте дальше. Надеюсь это поможет.
Поскольку вы не указали, подключены ли вы к МОЕМУ SQL или нет, поэтому я хотел бы показать вам самый простой процесс экспорта файла Excel в MY Sql.
Выполните следующие действия, чтобы экспортировать данные листа Excel в таблицу MySQL.
Выберите вкладку "Данные", нажмите "MySQL для Excel", чтобы открыть панель задач "MySQL для Excel".
В "Открыть соединение MySQL" дважды щелкните существующее локальное или удаленное соединение, чтобы отобразить доступные схемы базы данных.
Выберите "Схема" и нажмите "Далее", чтобы отобразить все объекты базы данных.
Затем выберите ячейки на листе для экспорта, нажмите "Экспорт данных Excel в новую таблицу".
Теперь укажите, должна ли первая строка использоваться в качестве имени столбца.
Затем введите уникальное имя таблицы и выберите параметры сортировки для использования в новой таблице.
Выберите столбец Первичный ключ.
Примените соответствующие параметры для столбцов.
Наконец, нажмите "Экспорт данных", чтобы создать новую таблицу с данными.
Другой метод - 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';
Примечание: измените файл, имя поля, а также критерии в соответствии с вашей структурой базы данных.
Я верю, что это поможет вам.