В Power Query я хочу использовать список различных значений из одного запроса (например, список клиентов, присутствующих в таблице Sales), чтобы ввести его в оператор SQL по другому запросу (например, таблица «Клиент»).Как перестроить комбинацию данных Power Query
Чтобы вытащить список различных значений У меня есть функция, getDistinct(), что:
- Извлекает один столбец из выбора запроса,
- держать только различные значения присутствуют на этой колонке, и
- Возвращайте эти значения, разделенные запятыми, чтобы они могли быть введены в SQL-инструкцию.
Эта функция отлично работает в автономном запросе. Однако, когда я пытаюсь использовать его на мой запрос «Клиент» он выдает ошибку (см код и сообщение об ошибке ниже):
let
Source = Oracle.Database("myServer", [Query="select * from db_customer where customer_id in (" & getDistinct(Sales,"CustomerID") & ")"])
in
Source
и ошибка:
Formula.Firewall: Query 'Customer' (step 'Source') references other queries or steps, so it may not directly access a data source. Please rebuild this data combination.
Я попытался создать другой запрос, который выполняет эту функцию, а затем ссылается на него в моем запросе «Клиент», но это, похоже, не работает. Я знаю, что могу «игнорировать уровни конфиденциальности» (который, кстати, я проверял и работает), но поскольку я не знаю последствий этого, я боюсь просочившихся данных.
Это не работает для меня , Если на шаге 1 вы получите все данные клиента, любой пользователь власти сможет открыть Power Query и просмотреть все данные клиента. – Victor
Если бы они хотели получить к нему доступ, они могли бы изменить запрос в первом ответе, чтобы получить его. Если вы создаете исходный запрос как соединение, пользователи не должны видеть какие-либо исходные данные на листе. –
@ AlejandroLopez-Lago-MSFT Возможно, я не смог правильно описать конкретный сценарий. Предположим, я хочу поделиться этим отчетом с определенной аудиторией (которая не может обновить отчет, так как у них нет доступа к базе данных), и я не хочу, чтобы они каким-либо образом получали данные о клиентах, которых нет на таблица продаж. Если я ничего не пропущу, даже если я создам запрос «только для соединения», вы все равно можете перейти к PowerQuery и просмотреть предварительный просмотр данных, которые могут оказаться данными, которые они не должны видеть, даже если они не загружены в модель. – Victor