在查询编辑器(PowerBI或PowerQuery)中引用另一个表

时间:2018-04-27 23:10:00

标签: powerbi powerquery m

我正在运行查询以更新PowerBI中的历史数据表。此更新查询调用Adobe Analytics API,并根据我指定的日期范围提取数据。

由于我希望它尽可能快地运行,我只想查询我在历史数据表中已经存在的数据。我可以根据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

工作代码

每日美国是通过查询编辑器创建的表格

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 :(得分:1)

如果要为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" 从该列中获取最大值。

试试这个:

{{1}}