社区首页 >问答首页 >MDX方程转换为DAX方程

MDX方程转换为DAX方程
EN

Stack Overflow用户
提问于 2012-10-29 00:58:53
回答 1查看 1.2K关注 0票数 1

我正在研究SQL Server表格模型。

我正在努力将MDX方程转换成DAX方程。

我想要显示每个月的PC数量的变化(增量或递减)速度使用以下计算。

(当月PC数-上月PC数)/上月PC数

这是MDX方程,它在多维模型中工作得很好。

PC计数是最后一个非空值。

代码语言:javascript
代码运行次数:0
复制
(([Date].[Fiscal QTR].CURRENTMEMBER, [Measures].[PC Count])
-
([Date].[Fiscal QTR].PREVMEMBER, [Measures].[PC Count]))
/
([Date].[Fiscal QTR].PREVMEMBER, [Measures].[PC Count])

我做了一个当月PC计数的DAX方程

代码语言:javascript
代码运行次数:0
复制
PC Count:=
CALCULATE(
    SUM([PC Count]),
    FILTER(Time, Time[DateKey] = MAX(vwFact_PCCount[DateKey]))
)

这在网格视图(SSDT)和Performance Point中运行良好。但是,下面的MDX方程式对于上个月的PC计数在网格视图(SSDT)中运行良好,但此方程式在I底轴(月)的Performance Point中显示错误。

代码语言:javascript
代码运行次数:0
复制
Previous Month Count:=CALCULATE(
    SUM([PC Count]),
    FILTER(Time, Time[DateKey] = FORMAT(DATE(LEFT(Max(vwFact_PCCount[DateKey]),4),
                                             RIGHT(LEFT(Max(vwFact_PCCount[DateKey]),6),2)
                                             ,1)-1
                                        , "yyyyMMdd") *1)
)

我不知道我上个月的计数公式出了什么问题。如何使用DAX获得此结果?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-01-08 14:12:46

您的“当前月份PC计数”表达式的编写使其始终是表中最近的月份。这与您在帖子中显示的MDX代码不同。

MDX -当月PC计数

代码语言:javascript
代码运行次数:0
复制
([Date].[Calendar Month].CURRENTMEMBER, [Measures].[PC Count])

DAX -当月PC计数

代码语言:javascript
代码运行次数:0
复制
SUM('table name'[PC Count])

在DAX中,“当前”的概念是contextual...See this thread在MSDN论坛上的一个很好的讨论。

下面的示例显示了使用AdventureWorksDW2012数据集的DAX中的当前/以前情况:

代码语言:javascript
代码运行次数:0
复制
DEFINE
    MEASURE 'Internet Sales'[SalesAmount_CurrMth] = 
        'Internet Sales'[Internet Total Sales]
    MEASURE 'Internet Sales'[SalesAmount_PrevMth] = 
        CALCULATE (
             'Internet Sales'[SalesAmount_CurrMth]
            ,PREVIOUSMONTH('Date'[Date])
        )
EVALUATE (
    FILTER(
        ADDCOLUMNS (
            SUMMARIZE (
                'Date'
                ,'Date'[Calendar Year]
                ,'Date'[Month Name]
            )
            ,"Current Month", 'Internet Sales'[SalesAmount_CurrMth]
            ,"Prior Month", 'Internet Sales'[SalesAmount_PrevMth]
        )
        ,'Internet Sales'[SalesAmount_CurrMth] <> BLANK()
    )
)

试试这个。

代码语言:javascript
代码运行次数:0
复制
Previous Month Count :=
CALCULATE (
     SUM('<insert table name here>'[PC Count])
    ,DATEADD('Date'[Date],-1, MONTH)
)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13114702

复制
相关文章
SQLServer 2005Windows验证如何改为混合模式验证
默认情况下,SQL Server 2005 Express是采用集成的Windows安全验证且禁用了sa登录名,而很多用户使用数据库的时候需要用到sql身份验证,如下可开启sql验证
授客
2019/09/12
1.3K0
SQLServer 2005Windows验证如何改为混合模式验证
Linux下将Oracle11g由非归档模式(Noarchivelog)更改为自动归档模式(archivelog)
在Linux环境下将Oracle11g数据库模式由非归档模式(Noarchivelog)修改为自动归档模式(archivelog)。
星哥玩云
2022/08/17
1K0
Linux下将Oracle11g由非归档模式(Noarchivelog)更改为自动归档模式(archivelog)
博通第一板斧:将 VMware 从永久许可证改为订阅模式
2022年5月26日,博通表示,斥资610亿美元收购VMware后,VMware“将从永久许可证迅速改为订阅模式”。 这是博通软件集团总裁Tom Krause在周四的博通财报电话会议上表示的。 在交易达成后的三年内,VMware将为博通增加约85亿美元的预计息税折旧摊销前利润(EBITDA)——鉴于VMware目前的EBITDA约47亿美元,这个增长幅度相当大。 当时有人问他这家半导体巨头计划如何实现这个预期目标:而订阅就是解决之道。 Krause还多次表示,博通打算致力于深耕VMware的关键产品组合,
云头条
2022/05/27
1.3K0
博通第一板斧:将 VMware 从永久许可证改为订阅模式
设计模式实战-状态模式,让代码更清爽简洁
状态模式(Allow an object to alter its behavior when its internal state changes.The object will appear to
架构师修炼
2020/07/20
1.2K0
设计模式实战-状态模式,让代码更清爽简洁
vue路由history模式下刷新页面404
vue的路由是由js来控制的,但是,当你刷新浏览器的时候,是向服务器发送请求的一个过程,当访问不到的时候必然会返回404。
神葳
2021/01/22
1.2K0
如何将Angular localhost:4200 改为IP
ust specify the IP in --host option like ng serve --host 192.16.1.1
用户6421725
2020/01/16
9300
为WordPress 后台编辑器文本模式(HTML模式)添加按钮
今天为各位带来在WordPress 后台编辑器文本模式(HTML模式)添加自定义按钮的方法,这个的话如果使用S-shortcodes 短代码插件的可能有接触,因为在最新版已经集成了。文本模式(HTML模式)添加按钮是为了更加方便地进行写作,特别是像Jeff 这种习惯在文本模式(HTML模式)下写文章的博主。之前分享过的一篇文章《WordPress自带TinyMCE编辑器相关功能增强》也大致有介绍,今天在这里则更加细致说明方法并给出多个实例。 为WordPress 后台编辑器文本模式(HTML模式)添加按钮教
Jeff
2018/01/19
2.4K0
为WordPress 后台编辑器文本模式(HTML模式)添加按钮
韩信拜将:委派模式
今天我给大家分享设计模式中的委派模式。用贴切的生活故事,以及真实项目场景来讲设计模式,最后用一句话来总结这个设计模式。
田维常
2021/06/09
3810
韩信拜将:委派模式
如何将MySQL GR 设置为多主模式
在MySQL 5.7.17版本中发布的MySQL Group Replication(后文简称为MGR)被很多人称为MySQL复制方案的正规军,可以一举取代现在的MySQL Replication,Semisynchronous replication,甚至是可以取代之前最成功的MySQL集群方案Galera。 MGR有两种模式,一种是Single-Primary,一种是Multi-Primary,单主或者多主。 在前一种模式Single-Primary中,无论集群中有多少个节点,只有一个节点允许写入,其它
数据和云
2018/03/07
3.9K0
如何将MySQL GR 设置为多主模式
(四) 如何将socket设置为非阻塞模式
1. windows平台上无论利用socket()函数还是WSASocket()函数创建的socket都是阻塞模式的: SOCKET WSAAPI socket( _In_ int af, _In_ int type, _In_ int protocol ); SOCKET WSASocket( _In_ int af, _In_ int type, _In_ int
范蠡
2018/04/04
4.6K0
如何将wordpress所有文章批量改为已发布状态
  用wordpress建站的一个好处就是bd站长工具平台上有数据结构插件,可以认为bd默认支持wp发展,另外一种建站程序是discuz。我们在用wordpress发布文章时,特别是那种多用户投稿的文章一般都会设置发布状态为“等待审核”,如果你对他们之前的文章比较认可的话可以直接通过。一篇篇在后台通过审核会累趴的,那么如何将wordpress所有文章批量改为已发布状态呢?一个简单的sql语句就能搞定。 UPDATE `wp_posts` SET `post_status` ='publish' WHERE
ytkah
2018/03/06
2.3K0
PHP安全模式详解(PHP5.4安全模式将消失)
这个是之前的笔记,随笔贴上而已。PHP安全模式在5.4的时候已经不再支持了。查看官网:
黄规速
2022/04/14
1.8K0
PHP安全模式详解(PHP5.4安全模式将消失)
PHP实现弹出提示框并跳转到新页面
每次都复制一大段代码还是比较麻烦的,我们可以考虑封装成函数来调用,下面是我自己封装的页面跳转函数
PM吃瓜
2019/08/12
4.6K0
ChatGPT 编写模式:如何高效地将思维框架赋予 AI ?
prompt 通常指的是一个输入的文本段落或短语,作为生成模型输出的起点或引导。prompt 可以是一个问题、一段文字描述、一段对话或任何形式的文本输入,模型会基于 prompt 所提供的上下文和语义信息,生成相应的输出文本。
编程思维
2023/03/23
1.3K1
ChatGPT 编写模式:如何高效地将思维框架赋予 AI ?
新旧模式碰撞,互联网家装如何才能更走心?
文|孟永辉 在经历了“互联网+”时代的洗礼之后,互联网家装已经开始越来越多地进入到人们的视野之中。而以土巴兔、齐家网为代表的互联网家装巨头的持续获得资本则让更多人的人看到了互联网家装市场巨大的潜力,于是越来越多的互联网家装公司开始进入到市场之中,一场由互联网家装引发的城市和用户争夺战役由此开启。 云端设计中心、F2C供应链模式、全程24小时监控等诸多与互联网有着紧密联系的技术被应用到互联网家装市场之中。在很多人的概念中,互联网家装就应该有互联网的因素,就应当发挥互联网技术在整合资源等方面的巨大优势。然而,
孟永辉
2018/05/11
6532
openwrt将LAN口改为WAN方法
牢骚 折腾了好几个好几个小时,终于搞好了。原因就是因为固件里面的端口序号和实际路由器后面的序号不一致,导致我的设置和物理连接对不上,这是个巨坑。 折腾需求 PS:我家里面有两条宽带,一条中国联通50M,一条中国移动50M。 折腾多WAN口(就是把LAN口改为WAN口)的主要目的是我想是默认上网走联通,部分IP(什么IP你懂的)通过静态路由走移动出去,因为移动的国际出口在中国香港,出国速度相对来说好一些。 折腾方法 1.依次点开-网络-交换机 2.首先要启用VLan,可
行 者
2018/03/26
16.6K0
openwrt将LAN口改为WAN方法
python 将网卡改为嗅探功能
def pktPrint(pkt): if pkt.haslayer(Dot11Beacon): print '[+] Detected 802.11 Beacon Frame' elif pkt.haslayer(Dot11ProbeReq): print '[+] Detected 802.11 Probe Request Frame' elif pkt.haslayer(TCP): print '[+] Detected a TCP Packet' elif pkt.haslayer(DNS): print '[+] Detected a DNS Packet'
用户5760343
2019/07/31
1.2K0
python 将网卡改为嗅探功能
Fiddler成长之路 - 如何将https修改为http协议
方法二: Fiddler里的Rules—>Customize Rules, 在static functionOnBeforeRequest(oSession: Session)方法下面添加代码, 如下: if(oSession.uriContains("xxx.xxx.xxx")) //括号内需要填写具体的请求 { oSession.fullUrl="http://" +oSession.hostname+oSession.PathAndQuery; } 如下图所示:
用户5521279
2019/06/02
4.6K0
如何将WordPress固定链接格式修改为.html结尾
之前一直采用 自定义结构 http://www.xiaohulizyw.cn/%category%/%postname%/  的URL结构形式,为了优化URL结构,特意将其修改为 http://www.xiaohulizyw.cn/%category%/%postname%.html,即以.html结尾,具体见上图。
小狐狸说事
2022/11/17
1.2K0
如何将WordPress固定链接格式修改为.html结尾
nestjs将底层由express改为fastify
nestjs默认使用的http框架为express,代码如下:// 输入代码内容import { NestFactory } from '@nestjs/core';import { AppModule } from './app.module';async function bootstrap() { const app = await NestFactory.create(AppModule); await app.listen(3000);}bootstrap();在这里将express替换为fa
挥刀北上
2023/05/24
7870
nestjs将底层由express改为fastify

相似问题

如何在单击按钮时将纵向模式更改为横向模式?

10

单击按钮将垂直屏幕模式更改为水平屏幕模式

10

如何通过单击按钮将android更改为静默模式?

11

如何将jQuery模式更改为React模式?

124

将网格模式更改为列表模式

13
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文