Sql 流分析查询获取错误列名不';不存在,但它存在?

Sql 流分析查询获取错误列名不';不存在,但它存在?,sql,tsql,azure,azure-stream-analytics,Sql,Tsql,Azure,Azure Stream Analytics,当我在ManagementStudio中运行查询时,它工作正常,但在流分析作业中,它会抛出一个错误:查询编译错误:无效列名:“afkorting”。具有此名称的列不存在 我下载了输入表以检查上传时是否出错,但该文件确实有该列名(我仔细检查了是否有大写字母、书写错误等),因此如何修复此问题 这是我的疑问: ; WITH Check AS ( SELECT afkorting, * FROM Reizen RE LEFT JOIN Gegevens AP

当我在ManagementStudio中运行查询时,它工作正常,但在流分析作业中,它会抛出一个错误:查询编译错误:无效列名:“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
希望有人能帮助我


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

只需总结上面的所有注释就可以解决问题,我用
对流查询语言元素
进行了一些测试,
选择
&。这是我对这个问题的结果列表

  • 如果不使用
    JOIN
    ,则在
    with
    范围中使用带有符号
    *
    的列名在ASA上执行是正确的
  • 使用
    JOIN
    ,需要列出所有不带符号的列名
    *
    来执行。原因似乎是为了避免与列名冲突产生歧义

  • 您需要提供所有列名,因此

    SELECT*但选择column1、column2

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

     AP.column1, RE.column2 etc
    

    您是否尝试过显式指定列而不是使用*?感谢提示,它在“afkorting”列上没有给出错误,但在第一个给定列上确实给出了相同的错误,当我删除该列时,它在现在首先给出的列上给出了相同的错误?!我猜这是一个bug?我认为他们不支持流分析中的Check
    。你是说cte?我缩短了cte的真实姓名以进行核对。但是,如果您不使用“名称”as进行cte as,那么如何在流分析中进行cte?问题已解决!需要写出CTE中的所有列名并使用前缀