Страницы: 1
RSS
PQ как обратиться к шагу другого запроса
 
добрый день. в запросе обращаюсь к другому запросу и мне возвращается последний шаг этого запроса. а как быть если нужен другой шаг этого запроса? надо получить значение 74.не могли бы показать  
 
вообще просто (файл не смотрела) -
let
...
in любой шаг (не обязательно последний)
-- потом такой запрос и покажет вам этот внутренний шаг (не обязательно последний)
p.s.
а вообще странный подход - лучше всё писать в одном запросе - работает стабильнее
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
 
JeyCi, здравствуйте. извиняюсь что забросил одну из своих тем и не ответил на Ваши советы.
сейчас пробую как вы советуете и редактор из за ошибки  не пропускает. чего не хватает или что лишнее?
Код
= let
    Источник = Excel.CurrentWorkbook(){[Name="Таблица2"]}[Content],
    #"Измененный тип" = Table.TransformColumnTypes(Источник,{{"Столбец1", type text}, {"Столбец2", Int64.Type}}),
    #"1" = Таблица1,
    #"хотел обратиться к запросу" = Источник,
    #"2" = Let
          Таблица1
            in  
            Пол2

   in
      #"2"
 
Доброго вам дня. Почитайте на досуге: Как получить несколько значений в результате запроса Power Query
Вот горшок пустой, он предмет простой...
 
PooHkrd, здравствуйте. решил использовав оператор meta. спасибо Вам и Максиму Зеленскому.
 
Цитата
PooHkrd написал:
Как получить несколько значений в результате запроса Power Query
не прочитала ещё (но тоже спасибо),
но обычно делаю так - чтобы получить 2шага в результат работы запроса (в данном случае - это 2 значения - max и к какому ключу относится)
Код
let  
   maxCap = List.Max([K_OI]), 
   pose = List.PositionOf([K_OI] , List.Max( [K_OI] )), 
   cc=[contract]{pose} 
in 
   Record.FromList({maxCap, cc},{"maxCap", "cc"})
иногда приходилось такой манёвр провести внутри групповых расчётов по группе (созданной например для др целей, нежели нахождение max, по др ключу) - не в этом суть... - но способ загнать 2 шага в in... просто для инфо
Изменено: JeyCi - 19.02.2019 15:54:36
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
 
JeyCi, это один из способов, который предлагает Максим, там 3 варианта:
1. сделать запрос к источнику до ветвления и дальше обращаться к нему в других запросах.
2. ваше предложение
3. с использованием меток meta
Вот горшок пустой, он предмет простой...
 
Цитата
PooHkrd написал:
JeyCi , это один из способов,
PooHkrd - ещё не смотрела статью... но свой способ сооружала сама 8)  поэтому и выложила... ведь может хорошая идея прийти 2-м хорошим людям в разных местах планеты в разное время по разным задачам  ;)
p.s. кстати 1-й метод тоже часто использую, как и все
Цитата
PooHkrd написал:
1. сделать запрос к источнику до ветвления и дальше обращаться к нему в других запросах.
p.s. вариант с meta попробую на досуге... - полагаю, может быть удобен, чтобы глазами не лазить по всему коду в поисках нужной его части (сразу на эту часть повесить метку)  
Изменено: JeyCi - 20.02.2019 09:16:53
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
 
А почему бы просто не сделать результат в виде записи?
 
Цитата
Alexey_Spb написал:
результат в виде записи
здравствуйте. покажите на примере из #1
 
Подозреваю что он имел ввиду что JeyCi вместо
Код
Record.FromList({maxCap, cc},{"maxCap", "cc"})

могла бы написать
Код
[maxCap = maxCap, cc = cc]
Вот горшок пустой, он предмет простой...
 
artyrH,
Цитата
artyrH написал:
решил использовав оператор meta. спасибо Вам и Максиму Зеленскому.
Добрый день!
А не могли бы вы поделиться результатом? Хотелось бы посмотреть на примере.
 
reactortyz, пожалуйста. там только один вопрос не решен.
 
Цитата
artyrH написал:
там только один вопрос не решен
Просто не надо создавать глобальные переменные, с теми же именами, что используются в локальных запросах. Это ж общее требование к любому языку программирования. Из такого ничего кроме бардака не вырастает никогда.
Вот горшок пустой, он предмет простой...
 
Цитата
PooHkrd написал:
не надо создавать глобальные переменные, с теми же именами
понял. спецом создал чтоб узнать есть ли выход.
 
artyrH, ну если очень-очень надо...
Код
= Expression.Evaluate("Источник", #shared)
F1 творит чудеса
 
Максим Зеленский, научите человека плохому.  :D
Вот горшок пустой, он предмет простой...
 
не, ну зря, что ли, люди старались: The Environment concept in M for Power Query and Power BI Desktop
Только, конечно, надо предупредить, что #shared не работает в Power BI Service, ибо нефиг
F1 творит чудеса
 
Максим Зеленский, ух ты опять чудесная ссылка. Спасибо огромное.
Вот горшок пустой, он предмет простой...
 
Цитата
PooHkrd написал:
научите человека плохому
Почему плохому? Активно использую эту функцию, разницы в скорости не заметил, а возможности дает фантастические.

Правда у меня довольно специфические типовые приложения - сложные обработки небольших обьемов данных, а не наоборот )

Еще варианты:
Код
Record.Field(#shared, "Источник")

#shared[Источник]
Изменено: Alexey_Spb - 20.02.2019 17:36:23
 
спасибо за варианты. может, пригодится когда. а так не буду
Цитата
PooHkrd написал:
создавать глобальные переменные, с теми же именами, что используются в локальных запросах
 
Цитата
Alexey_Spb написал:
Почему плохому?
Ну, это ж шутка. Там и смайлик стоял. Не вижу принципиальной необходимости обзывать шаг в запросе тем же именем, что и запрос, который находится вне текущих let ... in. Лучше все таки называть по-разному. А потом через полгодика откроешь запрос чтобы поправить чего. И будешь вот таким  8-0
Вот горшок пустой, он предмет простой...
 
Как показывает практика, количество возможных имен переменных всегда ограничено  :D :D :D
Особенно это заметно в PQ на многократно вложенных функциях :) :)
F1 творит чудеса
 
Цитата
Alexey_Spb написал:
Активно использую эту функцию
можете столкнуться в весьма неожиданными результатами... Далеко не всегда тот #shared, который виден в окне редактора, это тот #shared, который будет доступен внутри другого запроса - мало ли, решило не evaluate ненужный запрос.
Может, сейчас пофиксили, но раньше так и было - первая выгрузка на лист нормально, следующие с ошибкой
F1 творит чудеса
 
Цитата
PooHkrd написал:
[maxCap = maxCap, cc = cc]
попробовала, в скорости не прибавила... - но краткость синтаксиса приятная - я тогда, видимо, как-то не так пробовала этот вариант - получала ошибку какую-то... (просто давно сооружала тот код, в начале знакомства с pq, а лезть в тот код снова для оптимизации всё времени не было)... remark'a принимается
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
Страницы: 1
Наверх