流分析查询获取错误列名不存在,但确实如此?

时间:2017-03-09 07:42:53

标签: sql tsql azure azure-stream-analytics

当我在管理工作室中运行我的查询时,它工作正常,但在流分析工作中它会抛出一个错误:查询编译错误:列名无效:'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

希望有人可以帮助我!

*问题解决:您需要提供所有列名,所以不要SELECT *而是SELECT column1,column2并使用表的给定前缀,在我的例子中:AP.column1,RE.column2等*

2 个答案:

答案 0 :(得分:0)

只需总结上述解决问题的所有评论,我对Stream Query语言元素WITHSELECT&进行了一些测试。 JOIN。这是我的问题的结果列表。

  1. 如果没有JOIN,则在*范围内使用带有符号WITH的列名对于在ASA上执行是正确的。
  2. 使用JOIN,必须列出所需的所有列名,而无需使用符号*执行。原因似乎是为了避免列名冲突的模糊性。

答案 1 :(得分:0)

你需要提供所有列名,所以不是

SELECT * but SELECT column1, column2

并使用表格的给定前缀, 例如  就我而言:

 AP.column1, RE.column2 etc