Страницы: 1
RSS
Power Query Как привильно и какими средствами организовать запрос?, power query, Mysql, Excel
 
Доброго времени суток.

Вопрос достаточно бональный для тех кто в теме.
Как извлекать данные из MySql  по критерию, который равен значению ячейки?

Небольшой пример для сортировки с постоянным значением равным 9.
Как вместо 9 поставить адресс ячейки? Лист 1, А1
Код
let
    Quelle = MySQL.Database("localhost", "curamed", [ReturnSingleDatabase=true]),
    curamed_test = Quelle{[Schema="curamed",Item="test"]}[Data],
    #"Gefilterte Zeilen" = Table.SelectRows(curamed_test, each ([test] = 9))
in
    #"Gefilterte Zeilen"
 
Сделайте эту ячейку частью таблицы (объект table), далее загрузите её в pq и затем ИмяТаблицы[имя_столбца]{номер строки от 0}
Но для pq это имхо колхоз, имеет делать настроечные таблицы и выбирать параметры по ключу.

Вот простой пример такой настроечной таблицы и функции, которая возвращает из нее параметр по ключу.
Код
let
    Setup = Table.Buffer(Excel.CurrentWorkbook(){[Name="Setup"]}[Content]),
    GetVal = (Parameter as text) as any => Setup{[Parameter = Parameter]}[Value],

    Source = Excel.CurrentWorkbook(){[Name="Data"]}[Content],
    Modification = Table.SelectRows(Source, each [Фамилия] = GetVal("Parameter_C"))

in
    Modification
Изменено: Alexey_Spb - 29.01.2019 11:43:48
 
ivgo, вам сюда. Все очень подробно расписано что да как.
Вот горшок пустой, он предмет простой...
 
Доброе время суток
Цитата
ivgo написал:
пример для сортировки с постоянным значением равным 9.
Используйте человеческую терминологию, то что вы описали называется фильтрацией.
Следующее. Зачем фильтровать на стороне клиента? MySQL.Database в записи Options имеет поле Query
Цитата
A native SQL query used to retrieve data. If the query produces multiple result sets, only the first will be returned.
которое позволяет выполнить запрос к базе данных. Вот этим запросом и определяйте данные, которые вам нужно получить. Не грузите сеть без причины.
 
Андрей VG, ему ж все равно параметр придется брать из ячейки  ;)
А пихать его в запрос SQL при обращении к БД или уже к вытащенному результату это вопрос для другой темы. Ну, я так вижу.
Вот горшок пустой, он предмет простой...
 
Close to OFF
Цитата
Андрей VG написал:
Не грузите сеть без причины.
и станцию рабочую тоже :-)
По вопросам из тем форума, личку не читаю.
 
Цитата
Андрей VG написал:
спользуйте человеческую терминологию, то что вы описали называется фильтрацией.Следующее. Зачем фильтровать на стороне клиента?  MySQL.Database  в записи Options имеет поле Query

Насколько мне известно, PQ самостоятельно выполняет такие операции на стороне сервера. То есть в данном примере автора фильтрация реально будет выполнена в SQL-запросе, а не внутри PQ. Это одна из фишек PQ.

Кстати, в моем примере с настроечной функцией не факт что фильтрация будет на стороне сервера. В примере автора - 100%
Изменено: Alexey_Spb - 29.01.2019 10:44:46
 
Поддержу Андрей VG - могут быть какие-то критические исключения, но фильтрацию лучше выполнять на сервере и получать уже нужный набор данных.
 
Цитата
PooHkrd написал:
ему ж все равно параметр придется брать из ячейки
Привет, Алексей. Тогда ячейке нужно дать имя, если нет желания возиться с таблицей параметров (что наиболее правильно). Пусть её имя filterValue, тогда значение можно получить
Код
Excel.CurrentWorkbook(){[Name="filterValue"]}[Content]{0}[Column1
Ну, а дальше вставить значение в SQL запрос.
 
Alexey_Spb, ну там ещё многое зависит от уровней безопасности. У Криса Вэба была серия статей про это. Кажется Максим Уваров переводил их.
 
Цитата
Alexey_Spb написал:
PQ умеет самостоятельно выполнять такие операции на стороне сервера.
Оно не может уметь, оно может запросить , а уж в зависимости от того как запрошено, сервер БД или сам обработает, или выдаст пакет данных для обработки на клиенте.
По вопросам из тем форума, личку не читаю.
 
Цитата
Alexey_Spb написал:
о есть в данном примере автора фильтрация реально будет выполнена в SQL-запросе
Ну, MySQL не входит в список Direct Query и, опять же, это технология поддерживаемая в Power BI. Про Power Query в Excel информация не попадалась. Откроете тайну источника таких данных? Где можно прочесть про Excel Power Query в режиме Direct Query?
 
Цитата
Андрей VG написал: Про Power Query в Excel информация не попадалась.
https://excel.city/2016/07/query-folding-and-dynamic-parameters/
Изменено: Alexey_Spb - 29.01.2019 11:44:11
 
Спасибо всем , отозвавшимся

Как правильно оформитъ такой запрос ? И возможно ли это?
Код
let
    Setup = Excel.CurrentWorkbook(){[Name="id"]}[Content]{0}[id],
    Quelle = MySQL.Database("localhost", "curamed", [ReturnSingleDatabase=true, Query="SELECT * FROM `test` WHERE `test` = Setup"])
  in
    Quelle
Изменено: ivgo - 29.01.2019 14:10:36
 
Скорее так:
Код
let
    Setup = Text.From( Excel.CurrentWorkbook(){[Name="id"]}[Content]{0}[id] ),
    Quelle = MySQL.Database("localhost", "curamed", [ReturnSingleDatabase=true, Query="SELECT * FROM `test` WHERE `test` = " & Setup])
in
    Quelle
Вот горшок пустой, он предмет простой...
 
Alexey_Spb, спасибо за ссылку. Забыл за не использованием Power Query вне форума :(  Но, боюсь, с MySQL этот номер не пройдёт, надо ставить и тестировать - применяется ли. Microsoft не очень любит стороннее.
Страницы: 1
Наверх