Ссылка на другую таблицу в редакторе запросов (PowerBI или PowerQuery) - PullRequest
0 голосов
/ 28 апреля 2018

Я выполняю запрос на обновление таблицы исторических данных в PowerBI. Этот запрос на обновление вызывает API-интерфейс Adobe Analytics и извлекает данные на основе указанного диапазона дат.

Поскольку я хочу, чтобы это выполнялось как можно быстрее, я хотел бы только запрашивать данные, которых у меня еще нет в моей таблице исторических данных. Я в порядке установки даты окончания этого запроса на основе Date.Time.LocalNow ().

#date(Date.Year(DateTime.LocalNow()), Date.Month(DateTime.LocalNow()), Date.Day(DateTime.LocalNow())-1)

Однако, где я застрял, ставит дату начала. В идеале я хотел бы взять MaxDate из таблицы в моей модели данных и использовать это значение в редакторе запросов в качестве даты начала.

Как бы я это сделал?

ОБНОВЛЕНИЕ 1 - Полный код ниже

let
Source = AdobeAnalytics.Cubes()
myreportsuiteid = Source{[Id="myreportsuiteid"]}[Data],
#"Added Items" = Cube.Transform(myreportsuiteid,
    {
        {Cube.AddAndExpandDimensionColumn, "DateGranularity", {"year", "month", "day"}, {"Date Granularity.Level 1: Year", "Date Granularity.Level 2: Month", "Date Granularity.Level 3: Day"}},
        {Cube.AddAndExpandDimensionColumn, "lasttouchchannel", {"lasttouchchannel"}, {"Last Touch Marketing Channel"}},        
        {Cube.AddMeasureColumn, "Unique Visitors", "uniquevisitors"},
        {Cube.AddMeasureColumn, "Visits", "visits"},
        {Cube.ApplyParameter, "DateRange", {#date(Date.Year(List.Max(Union[Date])), Date.Month(List.Max(Union[Date])), Date.Day(List.Max(Union[Date]))+1), #date(Date.Year(DateTime.LocalNow()), Date.Month(DateTime.LocalNow()), Date.Day(DateTime.LocalNow())-1)}},
        {Cube.ApplyParameter, "Segment", {{"s300000554_5ae201be22fa9950dcdbcd92"}}}
    })
in
    #"Added Items"

ОБНОВЛЕНИЕ 2

РАБОЧИЙ КОД

Daily US - таблица, созданная с помощью редактора запросов

let
Source = AdobeAnalytics.Cubes(),
todaysDate = Date.AddDays(DateTime.Date(DateTime.LocalNow()),-1),
maxDate = Date.AddDays(List.Max(#"Daily US"[Date]),1),
myreportsuiteid = Source{[Id="myreportsuiteid "]}[Data],

КОД ОШИБКИ

Union US - это таблица, созданная вне редактора запросов с помощью Union US = DISTINCT (UNION ('Seeker US', 'Daily US')) *

let
Source = AdobeAnalytics.Cubes(),
todaysDate = Date.AddDays(DateTime.Date(DateTime.LocalNow()),-1),
maxDate = Date.AddDays(List.Max(#"Union US"[Date]),1),
myreportsuiteid = Source{[Id="myreportsuiteid "]}[Data],

1 Ответ

0 голосов
/ 30 апреля 2018

Если столбец, на который вы хотите сослаться для MaxDate, называется Union[Date], то вы можете использовать List.Max, чтобы получить максимальное значение из этого столбца.

Попробуйте это:

let
Source = AdobeAnalytics.Cubes(),
MaxDate = List.Max(Union[Date]),
TodaysDate = DateTime.Date(DateTime.LocalNow()),
myreportsuiteid = Source{[Id="myreportsuiteid"]}[Data],
#"Added Items" = Cube.Transform(myreportsuiteid,
    {
        {Cube.AddAndExpandDimensionColumn, "DateGranularity", {"year", "month", "day"}, {"Date Granularity.Level 1: Year", "Date Granularity.Level 2: Month", "Date Granularity.Level 3: Day"}},
        {Cube.AddAndExpandDimensionColumn, "lasttouchchannel", {"lasttouchchannel"}, {"Last Touch Marketing Channel"}},        
        {Cube.AddMeasureColumn, "Unique Visitors", "uniquevisitors"},
        {Cube.AddMeasureColumn, "Visits", "visits"},
        {Cube.ApplyParameter, "DateRange", {MaxDate, TodaysDate}},
        {Cube.ApplyParameter, "Segment", {{"s300000554_5ae201be22fa9950dcdbcd92"}}}
    })
in
    #"Added Items"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...