2015-08-31 56 views
3

IM具有使用的問題在「中」在本地查詢,其中,在自變量是通過鑽出一個excel列表中檢索一個列表操作符:電源查詢 - 在本地查詢列表值

let 
    var = Number.ToText(fnFuncao("externalcode")), 
    Coluna= Excel.CurrentWorkbook(){[Name="Pendente"]}[Content], 
    #"Changed Type" = Table.TransformColumnTypes(Coluna,{{"PARAMETER", Int64.Type}, {"INTERACTION_ID", Int64.Type}, {"INTERACTION_ITEM", Int64.Type}}), 
    INTERACTION_ID = #"Changed Type"[INTERACTION_ID][0], 
    Source = Oracle.Database("somp", [Query="select * from ish.ticket where interaction_id in (" & INTERACTION_ID & ") "]) 
in 
    Source 

Error: 
    Expression.Error: We cannot apply operator & to types Text and List. 
    Details: 
    Operator=& 
    Left=select * from ish.ticket where interaction_id in (
    Right=List 

不限如何解決這個問題? 謝謝!

回答

3

我不知道爲什麼INTERACTION_ID被視爲一個列表。這兩個變化應解決您的問題:

  1. 變化INTERACTION_ID到#"Changed Type"[INTERACTION_ID]{0},
  2. 設置查詢到"select * from ish.ticket where interaction_id in (" & Number.ToText(INTERACTION_ID) & ")"

的第一個改變使用列表訪問運算符{},而不是記錄訪問操作符[]。第二個更改將INTERACTION_ID轉換爲文本值,以便可以使用&將其添加到其他文本值。

+0

太棒了。有效!謝謝 ! – user3682983

+0

如果我的interaction_id列在單元格a1,b1,c1中有值,該怎麼辦?有沒有辦法在查詢中包含所有的值? – user3682983

+0

刪除INTERACTION_ID步驟並將其用於查詢: ''select * from ish.ticket其中interaction_id in(「&List.Accumulate(List.Skip(#」Changed Type「[INTERACTION_ID],1),Number.ToText (#「Changed Type」[INTERACTION_ID] {0}),(state,current)=> state&「,」&Number.ToText(current))&「)」' 這循環遍歷列並在第一個元素。這隻有在列中有值的情況下才有效。 –