2016-10-01 77 views
0

我家中有許多傳感器,我想使用PowerBI來顯示不同房間的溫度圖表,以及衡量當前/最近的值。DAX:使用最新條目創建表格

我有困難的時候在DAX寫這篇:

  • 位置(文字,分區鍵)
  • 數據從窗體上的Azure Table中名爲 「DeviceReadings」 說到PowerBI

  • RowKey(基於日期的數值存儲,未使用)
  • 日期(日期時間,時間戳)
  • 溫度(十進制)
  • 溼度(十進制)

我想的是:(僞)

Select Location, Last(Date), Temperature, Humidity FROM DeviceReadings 
GROUP BY Location 

預期/通緝的結果是:

"Mediaroom", "01.10.2017 09:00", 26, 17 
"Office", "01.10.2017 09:03", 28, 23 
"Livingroom", "01.10.2017 09:13", 22, 32 

很顯然,我試圖創建一個根據這些讀數計算DAX表。這個想法是創建一個計算表,它始終包含最近的溫度/溼度,以便我可以用量規式視覺顯示這些值。

我一直在試圖設置表= SUMMARIZECOLUMNS,按位置分組,然後加入指定的列「LastSampled」 爲「MAX(DeviceReadings [日期])然後「溫度」; LASTNONBLANK(DeviceReadings [溫度]; DeviceReadings [溫度]);,但沒有得到「連接的溫度讀數,但其他東西。

理想情況下,我想按位置分組,然後由最高日PR的位置,然後顯示原始溫度+溼度值

我只是希望有一個「最近的溫度讀數」的位置上我PowerBI儀表盤顯示。 (我使用PowerBI桌面來編寫所有查詢並創建報告,並且尚未上傳到PowerBI門戶)

我的DAX技能相當低,所以我需要編寫計算查詢的幫助。

回答

1

嘗試使用此表達式:

Table = SELECTCOLUMNS (
    FILTER (
     CROSSJOIN (
      SELECTCOLUMNS (
       GROUPBY (
        DeviceReadings, 
        DeviceReadings[Location], 
        "LASTDATE", MAXX (CURRENTGROUP(), DeviceReadings[Date]) 
       ), 
       "Location", DeviceReadings[Location], 
       "Date", [LASTDATE] 
      ), 
      SELECTCOLUMNS (
       DeviceReadings, 
       "DateJoin", DeviceReadings[Date], 
       "LocationJoin", DeviceReadings[Location], 
       "Humidity", DeviceReadings[Humidity], 
       "Temperature", DeviceReadings[Temperature] 
      ) 
     ), 
     [Date] = [DateJoin] 
      && [Location] = [LocationJoin] 
    ), 
    "Location", [Location], 
    "LastDate", [Date], 
    "Temperature", [Temperature], 
    "Humidity", [Humidity] 
) 

我敢肯定有一個更簡單的方式來實現你所追求的,但我想不出現在。

讓我知道這是否有幫助。

+0

This Works!現在我已經提高了效率,如果沒有更簡單的問題出現,我會將其標記爲答案 - 唷,儘管DAX很多,但看似簡單的請求! :) –

+0

接受這個答案是有效的,沒有人提出更簡單的解決方案。謝謝,亞歷克斯:) –