SQL Openquery - 对象没有列

问题描述 投票:0回答:1

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

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

“链接服务器”XYZ“的OLE DB提供程序”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月(下个月)以及所有其他几个月后都会返回错误。任何帮助表示赞赏。

mysql sql-server mdx linked-server
1个回答
0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.