如何在 MDX 中使用 UNION

2023-12-15

我想要UNION下面MDX询问。对于这两个查询,同一日期范围的度量和维度是不同的。请帮助我摆脱困境。

SELECT NON EMPTY { [Measures].[Number of es2] } ON COLUMNS, 
 NON EMPTY { ([Date].[Year].[Year].ALLMEMBERS * [Date].[Month].[Month].ALLMEMBERS ) } DIMENSION PROPERTIES MEMBER_CAPTION, 
 MEMBER_UNIQUE_NAME ON ROWS FROM ( SELECT ( [Date].[Date Hierarchy].[Date].&[20170101] : [Date].[Date Hierarchy].[Date].&[20180101] ) ON COLUMNS 
 FROM ( SELECT ( { [PracHistory].[Name].&[In] } ) ON COLUMNS FROM [Cube])) 
 WHERE ( [PracHistory].[Name].&[In] ) 



SELECT NON EMPTY { [Measures].[Number of es1] } ON COLUMNS, 
  NON EMPTY { ([Date].[Year].[Year].ALLMEMBERS * [Date].[Month].[Month].ALLMEMBERS ) } DIMENSION PROPERTIES MEMBER_CAPTION, 
  MEMBER_UNIQUE_NAME ON ROWS FROM ( SELECT ( [Date].[Date Hierarchy].[Date].&[20170101] : [Date].[Date Hierarchy].[Date].&[20180101] ) ON COLUMNS 
  FROM ( SELECT ( { [Prac].[Pra atus].&[ We] } ) ON COLUMNS FROM [Cube])) 
  WHERE ( [Prac].[Pra atus].&[ We] )

MDX 不支持 Union,但是有一种解决方法。

1)您可以编写一个查询,该查询将在第一个“es2”列上显示“Pra atus”的所有值和名称的“In”值。然后它将显示“Pra atus”的“we”值和“Name”的所有值“es1”。这些列将并排放置。查询如下所示。所有值均表示默认值。

SELECT NON EMPTY 
{ 
([Measures].[Number of es2],[PracHistory].[Name].&[In],[Prac].[Pra atus].[All]),
([Measures].[Number of es1],[PracHistory].[Name].[All],[Prac].[Pra atus].&[ We])
 } ON COLUMNS, 
NON EMPTY { ([Date].[Year].[Year] * [Date].[Month].[Month] ) } ON ROWS 
FROM [Cube]     
WHERE ( [Date].[Date Hierarchy].[Date].&[20170101] : [Date].[Date Hierarchy].[Date].&[20180101] ) 

上述示例

SELECT NON EMPTY 
{ 
([Measures].[Internet Sales Amount],[Product].[Category].&[1],[Customer].[Country].[All]),
([Measures].[Internet Order Quantity],[Product].[Category].[All],[Customer].[Country].&[United States])
} ON COLUMNS, 
non empty
{ ([Date].[Calendar Year].[Calendar Year], [Date].[Calendar Quarter of Year].[Calendar Quarter of Year]) } 
ON ROWS 
FROM [Adventure Works]   
WHERE ([Date].[Date].&[20130101]:[Date].[Date].&[20140101]  ) 

enter image description here

2)现在,如果您希望它显示在单列中,以模拟 SQL 联合的行为,那么您将需要一个计算度量,该度量将从两个度量之一中选择值。但是请注意,行上的日期除外您还会在行上看到“Name”和“Pra atus”。查询如下所示。

with member [Measures].[Number of esunion]
as 
case 
when 
[Product].[Category].currentmember is [Product].[Category].defaultmember then [Measures].[Internet Order Quantity]
when 
[Customer].[Country].currentmember is [Customer].[Country].defaultmember then [Measures].[Internet Sales Amount]
else null
end
SELECT NON EMPTY 
{ 
[Measures].[Number of esunion]
} ON COLUMNS,
non empty
{ 
([PracHistory].[Name].&[In],[Prac].[Pra atus].[All], [Date].[Year].[Year] , [Date].[Month].[Month]) ,
([PracHistory].[Name].[All],[Prac].[Pra atus].&[ We],[Date].[Year].[Year] , [Date].[Month].[Month])
} 
ON ROWS 
FROM [Cube]   
WHERE ([Date].[Date Hierarchy].[Date].&[20170101] : [Date].[Date Hierarchy].[Date].&[20180101]  ) 

上述示例

with member [Measures].[Number of esunion]
as 
case 
when 
[Product].[Category].currentmember is [Product].[Category].defaultmember then [Measures].[Internet Order Quantity]
when 
[Customer].[Country].currentmember is [Customer].[Country].defaultmember then [Measures].[Internet Sales Amount]
else null
end
SELECT NON EMPTY 
{ 
[Measures].[Number of esunion]
} ON COLUMNS,
non empty
{ 
([Product].[Category].&[1],[Customer].[Country].[All],[Date].[Calendar Year].[Calendar Year], [Date].[Calendar Quarter of Year].[Calendar Quarter of Year]) ,
([Product].[Category].[All],[Customer].[Country].&[United States],[Date].[Calendar Year].[Calendar Year], [Date].[Calendar Quarter of Year].[Calendar Quarter of Year])
} 
ON ROWS 
FROM [Adventure Works]   
WHERE ([Date].[Date].&[20130101]:[Date].[Date].&[20140101]  ) 

enter image description here

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 MDX 中使用 UNION 的相关文章

  • SQL Server 2016 JSON:选择字符串数组而不是对象数组

    我是 SQL Server 中的 JSON 新手 不知道如何返回简单的字符串数组 DECLARE T TABLE value NVARCHAR MAX INSERT INTO T value VALUES foo INSERT INTO T
  • SQL Server Express(或任何版本)可以在 RPi 上运行吗?

    我注意到完整版的 Windows 10 可以在 RPI 3 上运行 我想知道 SQL Server Express 或任何其他版本 是否可用于 ARM 版本的 Windows 我在任何地方都看不到它 所以我怀疑答案是否定的 但想检查一下我是
  • 无法附加数据库或创建新数据库 - SQL Server 2008 [重复]

    这个问题在这里已经有答案了 可能的重复 SQL Server 2008 Express 无法附加 mdf 文件 https stackoverflow com questions 1424811 sql server 2008 expres
  • 从长到宽 - SQL [重复]

    这个问题在这里已经有答案了 我有一张很长的桌子 例如 Date Person Number 2015 01 03 A 4 2015 01 04 A 2 2015 01 05 A 3 2015 01 03 B 5 2015 01 04 B 6
  • CROSS APPLY 不适用于 SQL SERVER 2000?

    如何在 SQL Server 2000 中使用与 CROSS APPLY 等效的功能 我有一个函数返回传递的 id 的顶级父级 ALTER Function dbo fn GetTopParentRiskCategory RctId int
  • WinForms 应用程序设计 - 将文档从 SQL Server 移动到文件存储

    我有一个连接到 SQL Server 的标准 WinForms 应用程序 该应用程序允许用户上传当前存储在数据库中的文档 在使用图像列的表中 我需要更改这种方法 以便将文档存储为文件 并将文件的链接存储在数据库表中 使用当前的方法 当用户上
  • 需要 SQL Server 查询帮助

    我在视图中存储一堆数据 将 MS Access 查询转换为视图 现在我想做的是编写一个存储过程来根据添加数据的时间提取数据 这是我正在运行的查询 Select Name PlanID ApptDate 1stAppt rn from Sel
  • 将单个列连接到逗号分隔的列表中[重复]

    这个问题在这里已经有答案了 我已经看到了人们将单个列滚动到逗号分隔列表中的多个示例 但我需要更多 这是我需要的数据和结果的示例 DECLARE SalesPerson table SalesPersonID int SalesPersonN
  • 查询所有表数据并进行索引压缩

    是否有人碰巧拥有一个通用 SQL 语句 可以列出数据库中每个分区的所有表和索引及其当前的压缩设置 Thanks 编辑 这是我尝试查询表所得到的 但我不确定连接是否正确 我得到了重复项 这似乎是由于索引的存在引起的 SELECT t name
  • Id 或 [TableName]Id 作为主键/实体标识符

    是否首选使用 Id 作为主键的列名或 TableName Id 作为命名约定 表 账户主键 ID 相对 表 账户主键 AccountId 在我见过的实现中 它似乎分为 50 50 左右 每种方法的优点和缺点是什么 跟进 在我的数据库中使用一
  • 使用 Python 中的 SQL Server 存储过程 (pyodbc)

    我有一个存储过程 代码 DECLARE RC int DECLARE id varchar 13 DECLARE pw varchar 13 DECLARE depart varchar 32 DECLARE class varchar 1
  • 使用 WHILE 创建虚拟数据

    我尝试使用 a 在表中插入一些虚拟数据WHILE 但它运行得非常非常慢 我在想也许我写的代码不正确 你能看一下并确认一下吗 Insert dummy data DECLARE i int Content int SET i 5001 WHI
  • 设置 xact_abort 并尝试一起捕获

    我的 sp 中有一个 try catch 块 其中只有一条插入语句 catch 检查错误代码是否违反 pk 如果是则进行更新 但有时我得到 当前事务无法提交 并且无法支持写入日志文件的操作 回滚事务 在批处理结束时检测到不可提交的事务 事务
  • 从表中删除孤儿

    我正在尝试清理一张有很多孤立项目的桌子 我通过查找空值来检查是否与另一个表存在关系来解决此问题 DELETE FROM table1 LEFT JOIN table2 ON table1 ID table2 ID WHERE table2
  • 如何授予所有表的 REFERENCES 权限

    我必须授予REFERENCES登录权限说sql login 我可以给予资助REFERENCES对单个表的权限 例如 GRANT REFERENCES ON Mytable TO sql login 有什么办法可以授予REFERENCES允许
  • Scrapy - 如何抓取网站并将数据存储在 Microsoft SQL Server 数据库中?

    我正在尝试从我们公司创建的网站中提取内容 我在 MSSQL Server 中为 Scrapy 数据创建了一个表 我还设置了 Scrapy 并配置了 Python 来抓取和提取网页数据 我的问题是 如何将Scrapy爬取的数据导出到我本地的M
  • 在 SQL Server 中处理日期

    我正在开发一个 ASP NET 网站 我从网页获取日期 然后根据用户输入我想从 SQL Server 数据库获取结果 使用存储过程 问题是我只能从用户界面获取这种格式的日期2016 10 08这是字符串类型 但在数据库中 我有一个类型为da
  • sql server 按组排名

    问题看似简单 但我却无法理解 这是针对 sql 服务器的 what I have in a table What I need as a output cksum id cksum id 2162514679 204 2162514679
  • 如何在存储过程中实现 sql 搜索功能 (Sql Server 2008)

    我需要编写一个存储过程 该过程将使用 sql server 2008 根据可选参数搜索表 将会有两种模式 基本搜索模式 我们只传递一些文本 高级搜索模式 使用可选参数而不使用 SearchText 为了进行测试 我使用 AdventureW
  • 了解 SSMS 2008 中关系的更新和删除规则

    当我们定义外键约束时 我对 SQL Server 2008 Management Studio 中的更新和删除规则的含义感到困惑 我也没有找到相关的帮助文档 例如F1帮助 这是屏幕快照 如果有人能描述它们的含义并推荐一些相关文档来阅读 我将

随机推荐

  • 如何在 PHP 中加密/解密整数

    有没有办法对整数 或字符串 进行2路加密 解密 请注意 我不是在寻找编码 我需要这样的东西 加密 100 gt 24694 加密 101 gt 9564jh4 或 45216 或 gvhjdfT 或其他 解密 24694 gt 100 我不
  • rollapply 中的对齐和偏移

    我正在尝试计算移动窗口的一些统计数据 并在动物园包中使用 rollapply 我的问题是如何让 rollapply 将该函数应用于前 n 个观察值 而不是当前观察值和前 n 1 个观察值 就像align right 似乎所做的那样 requ
  • 具有来自多列数据帧的值计数的单列

    我想用 pandas 对多列的频率进行求和 列的数量可以在 2 15 列之间变化 以下是仅 3 列的示例 code1 code2 code3 27 5 56 534 27 78 27 312 55 89 312 27 我希望得到以下结果 c
  • C++0x 中未调用移动构造函数

    请在下面找到我的代码 我曾经调用移动构造函数 代码受其他站点启发 并让我知道它有什么问题 我正在使用 GCC 4 5 3 include
  • 递归字符串反转函数

    出于好奇编写了一个递归字符串反转函数 但是那里的 XOR 有点问题 这个函数的重点是不使用迭代器 这就是它是递归函数的原因 这不是作业 只是好奇心 private static char ReverseNL char arr int ind
  • IOError:[Errno 24]打开的文件太多:

    我有一个巨大的文件 我正在将其写入大约 450 个文件 我收到错误为too many files open 我在网上搜索并找到了一些解决方案 但没有帮助 import resource resource setrlimit resource
  • 在 ie8 及以下版本上使用 twitter bootstrap 的 Respond.js

    我正在使用 twitter bootstrap 实现一个响应式网站 但在 iexplorer 8 及更低版本上无法使用媒体查询 我为 try respond js 创建了一个简单的示例 但媒体查询在 iexplorer 7 8 上仍然无法工
  • libvirtError:XML 错误:预期单播 mac 地址,发现多播

    我正在通过 ansible 设置 KVM 自动化 并且我有一个虚拟机一直给我这个错误 libvirtError XML 错误 预期的单播 mac 地址 发现多播 53 54 00 b4 ad 81 我不认为这是一个可靠的问题 因为其他几个虚
  • 图像尺寸突然缩小

    我只是复制图像并将其保存到当前目录中的另一个临时文件夹中 没有任何修改 但图像大小以某种方式减小了 为什么 from PIL import Image import os image path Users moomoochen Deskto
  • 两个数相除总是等于零?

    在我的 Xna 游戏中 我试图将我的游戏场缩放到它运行的屏幕上 为此 我使用比例来查找实际窗口相对于我的游戏区域缩放的百分比 为此 我将实际宽度除以虚拟宽度 float percent realViewport Width this vie
  • 如何从joomla模块中的ajax获取数据库值?

    我正在创建一个模块 我想从 ajax 获取数据库值 任何人有这个问题的解决方案或任何例子请帮助我 谁能给我一个正确的方法来解决这个问题 这是我的jquery code jQuery type bind click function var
  • 使用 std::tr1::function (或 boost::function)创建多播事件

    我正在尝试使用 TR1 的功能创建类似 C 的多播委托和事件 或者 Boost 因为 boost function 大部分 与 std tr1 function 相同 作为概念证明 我尝试了以下方法 template
  • wxPython 带有面板的框架的最小尺寸

    wxpython 2 8 11 0 python 2 7 如果我放一些Sizer一些控件直接进入Frame like import wx app wx App frm wx Frame None title title sizer wx B
  • 如何检查一个数组中的任何变量是否在另一个数组中

    我正在使用 MatLab 开发一个程序 该程序计算数字的幂 将它们加在一起 然后查看第一组数字 数字的幂 是否等于任何相加的数字的幂 我试图检查第一个数组中的每个值 但是 我得到如下输出 m 1 128 2187 16384 78125 2
  • Netsuite suitetalk 交易电子邮件,带有 pdf 附件介绍文本

    我使用 php 工具包和 netsuite 来添加带有 toBeEmailed 选项的销售订单 并且它登录的 api 用户具有首选项 交易电子邮件附件格式 gt PDF 这会将订单摘要制作为 pdf 并附加到电子邮件中并作为通知发送 我查看
  • Windows MessageBox 忽略 WM_CLOSE

    我们有一个遗留的 C Windows 应用程序 当发生致命连接错误时 它会通过 MessageBox 调用弹出一个模式窗口 我们的网络工程师可能会同时运行许多这样的应用程序 有时 网络故障会导致这些应用程序处理的连接同时失败 在 Windo
  • 从数组中删除重复项

    您好 我有一个使用此函数从 XML 文件创建的数组 LOCATIONS XML HANDLER creates array holding values of field selected from XML string xml param
  • 是否可以从 android 调用 WSHTTPBINDING?

    private static final String SOAP ACTION http tempuri org IService1 HelloTest private static final String METHOD NAME Hel
  • 如何使用 C# 禁用文本框上的复制、粘贴和删除功能

    有人可以建议如何使用 C 处理 WinForms 中文本框上的剪切 复制和粘贴事件吗 在 WinForms 中 禁用文本框上的剪切 复制和粘贴功能的最简单方法是将 ShortcutsEnabled 属性设置为 false
  • 如何在 MDX 中使用 UNION

    我想要UNION下面MDX询问 对于这两个查询 同一日期范围的度量和维度是不同的 请帮助我摆脱困境 SELECT NON EMPTY Measures Number of es2 ON COLUMNS NON EMPTY Date Year