tsql - 我不了解 OPENQUERY 函数
问题描述
我需要帮助理解 OPENQUERY-Structure。
我试图理解为什么以下查询(在 Microsoft SQL Server Management Studio 2016(版本 13.0.16106.4)中)只会产生错误
WITH MDXQuery
(
[AKPIValue]
)
as
(
SELECT
convert(decimal(20,2) ,"[KPIValue]") as AKPIValue
FROM OPENQUERY(SSAS2,
'WITH
MEMBER [KPIValue] AS 10 --(([Measures].[AverageOverTime], [Signal].[Type].[E-Current]))
SELECT NON EMPTY
{
[KPIValue]
}ON COLUMNS
,
{
[Time].[Week Calendar].[Day]} * {[Device].[Devices].&[{873AADF4-3D7A-4F25-A6BD-EC1E0A7077C6}]
}
dimension Properties MEMBER_CAPTION, MEMBER_KEY ON ROWS
FROM
(
SELECT
{
[Time].[Month].&[2019-12-01T00:00:00]:[Time].[Month].&[2020-03-01T00:00:00]
} ON COLUMNS
from [Measurements]
)'
)
)
SELECT
MDXQuery.*
From
MDXQuery;
而另一个查询没有
with MQ
(
[LastActivity]
,[LurtActivity]
)
as
(
SELECT
convert(nvarchar(max),"[Measures].[LastActivity]") as ABC
,convert(nvarchar(max),"[Measures].[LurtActivity]") as ABCDE
FROM OPENQUERY(SSAS2,
'with
member [Measures].[LastActivity] as Tail(nonempty([Time].[Minute].[Minute].MEMBERS,[Measures].[Count]),1).Item(0).Name
member [Measures].[LurtActivity] as 10
select
NON EMPTY
{
[Measures].[LastActivity]
,[Measures].[LurtActivity]
} ON COLUMNS
from [Measurements]'
))
Select MQ.* from MQ;
当我执行第一个时,我总是收到错误消息“无效的列名'[KPIValue]'”,我不知道为什么。
我一直试图通过稍微玩一下语法来了解查询的结构,看看我是否能辨别出一种模式,因为到目前为止我无法在网上找到正确的解释。
例如我不知道为什么我需要在行中使用双引号
convert(nvarchar(max),"[Measures].[LastActivity]") as ABC
或者为什么“as ABC”似乎无关紧要。
如果我在 SSRS 中执行任何一个 MDX 查询,我都会得到一个结果集。
解决方案
推荐阅读
- ios - 核心数据添加新列而不重建索引
- javascript - 只为其他一些 IIFES 创建一个 IIFE 返回变量
- ios - 自定义特定标签栏
- oracle - PL/SQL 试图执行一个非常简单的过程
- node.js - 在现有的 heroku 应用程序上部署节点应用程序
- python - 使用用户定义的布尔值设置 Python 正则表达式标志的最佳方法
- mongodb - 基于 MongoDb ObjectId 的 Redis 基于游标的分页
- gradle - 通过 build.gradle 任务在项目目录中创建 version.txt 文件(gradle 5.0)
- python-2.7 - 在 Python 中清除 Pickle `memo`
- python - 在 Pyomo 中获取决策变量以正确优化的问题