2017-03-09 32 views
0

當我在管理工作室中運行我的查詢時,它工作正常,但在流分析作業中,它會引發錯誤:查詢編譯錯誤:無效的列名稱:'afkorting'。有這樣的名字的列不存在..流分析查詢獲取錯誤列名不存在,但它呢?

我下載了輸入表來檢查是否上傳出了問題,但該文件確實有那個列名(我仔細檢查了大寫字母,寫錯等),所以如何我能解決這個問題嗎?

這是我的查詢:

; WITH Check AS 

    (
    SELECT afkorting, * 
    FROM Reizen RE 
    LEFT JOIN Gegevens AP 
    ON RE.ID = AP.code 
    ) 

SELECT * 
    FROM Check CH 
    JOIN Model VM 
    ON CH.afkorting = VM.Station 
    WHERE VM.h_station = VM.v_station 
    AND DATEPART(hour, CH.MsgReportDate) = VM.start_uur 
    AND (DATEPART(minute, CH.MsgReportDate) BETWEEN VM.start_minuut AND VM.eind_minuut) 
    AND DATEPART(weekday, CH.MsgReportDate) = VM.weekdag 

希望有人能幫幫我!

*問題解決了:你需要在所有COLUMNNAMES給予,所以不會選擇*,但SELECT列1,列2和使用表的指定前綴的,在我的情況:AP.column1,RE.column2等*

+0

有你試圖明確指定列而不是使用*? –

+0

感謝您的提示,它並沒有在'afkorting'列上給出錯誤,但它在第一個給定列上給出了相同的錯誤,當我刪除該錯誤時,它給出了現在給出的列的相同錯誤第一?!我想這是一個錯誤呢? – avk

+0

我不認爲他們支持在流分析中使用「WITH Check」。 – Armin

回答

0

只是總結了上述所有意見來解決問題,我做了一些測試流查詢語言元素WITH,SELECT & JOIN。這是我的問題結果列表。

  1. 沒有JOIN,在WITH範圍使用的列名與符號*是對ASA執行正確的。
  2. 隨着JOIN,有必要列出你想要的所有列名稱,而不需要執行符號*。原因似乎是爲了避免列名衝突帶來的歧義。
0

需要對所有列名給,所以不

SELECT * but SELECT column1, column2

,並使用該表的給定的前綴, 例如 在我的情況:

AP.column1, RE.column2 etc