SQL Openquery - 对象没有列

时间:2017-12-19 12:53:12

标签: mysql sql-server mdx linked-server

我有一个动态存储过程,它为OpenQuery创建一个mdx语句。因此,mdx语句中的对象可能是空的。在这种情况下,我想要一个空字符串。

通常,查询有效,除非我选择来自未来的日期,在这种情况下SQL Server会给我这个错误:

  

" OLE DB提供程序" XYZ"对于链接服务器" XYZ"表明   对象没有列或当前用户没有   该对象的权限。"

    select
        t.*
            from OPENQUERY([SomeServer_OLAP],''
            SELECT
                non empty{[Measures].[FactWorkItemHistory Microsoft_VSTS_Scheduling_OriginalEstimate],
                [Measures].[FactWorkItemHistory Microsoft_VSTS_Scheduling_CompletedWork],
                [Measures].[Microsoft_VSTS_Scheduling_RemainingWork]} ON COLUMNS
                , NON EMPTY { ([Work Item].[Iteration Path].[Iteration Path].ALLMEMBERS 
                * [Work Item].[System_AssignedTo].[System_AssignedTo].ALLMEMBERS)} on ROWS
                FROM [Team System]
                WHERE '+@Month+'  
                                '') t'

因此,输入12月的日期参数(写这篇文章的月份)工作正常,但是进入2018年1月(下个月)以及所有其他几个月后都会返回错误。任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:0)

删除"非空"从查询修复我的问题。似乎没有任何直接可观察到的缺点。