首页
学习
活动
专区
圈层
工具
发布

Excel催化剂开源第48波-Excel与PowerBIDeskTop互通互联之第二篇

前一篇的分享中,主要谈到Excel透视表连接PowerBIDeskTop的技术,在访问SSAS模型时,不止可以使用透视表的方式访问,更可以发数据模型发起DAX或MDX查询,返回一个结果表数据,较透视表的方式更为灵活...此篇对应功能实现出自:第5波-使用DAX查询从PowerbiDeskTop中获取数据源https://www.jianshu.com/p/21b2ca8fd2b8 原理性分析 和上一篇类似,同样是使用OLEDB...的数据连接,和SSAS分析服务进行连接,但此时使用编程的方式,向SSAS服务发起OleDbCommand,将DAX查询作为参数,传给OleDbCommand,最终模型将返回数据结果。...因为PowerBIDeskTop开启的SSAS服务是本地化服务,本地用户对其有全部的权限访问,并且PowerBIDeskTop界面上拖拉控件,实际上是转化为一段DAX查询向SSAS服务发出查询并返回的数据结构...其发出的查询,会保留着最后的几条查询,使用DMV查询可以访问到,所以使用下面的代码,即可拿到PowerBIDeskTop所发出的DAX查询语句,将此段语句再用上面所说的OLEDB的查询向SSAS服务再次请求

1.1K20

再推送一个MDX好工具MDX Studio,并简单分享下Excel下使用MDX的场景

先有MDX Studio,才有后来的DAX Studio出现 心血来潮一个周末都在研究MDX,昨天推文谈到的一些MDX资源中后,紧接着在笔记练习实操时,想起了过去接触过的这个MDX Studio工具,重新下载使用了...最大的应用场景,除了从其他Olap里查询数据以外,其实在咱们微软系自家,MDX也是可以使用的,包括使用PowerBI表格式建模亦然。...对olap数据消费一个重大战场是在Excel上,而Excel天然地支持并且也是原生功能唯一的支持方式使用MDX向模型层发起查询(Excel催化剂以插件的方式增强了Excel以DAX方式访问PowerBI...Excel环境下使用MDX查询定制透视表 在Excel透视表连接PowerBI模型(广义,含AzureAS/Sqlserver SSAS),用的就是MDX查询。...上述的经过MDX查询改造的透视表仍然是标准透视表,可以有透视表一切的功能保留。

3.1K30
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    【Power BI X SSAS】——基础介绍

    实时连接 话说上回,我们提到了Power BI连接数据的三种方式:导入(Import),直接查询(Direct Query)和实时连接(Live Connection)。...我们日常工作和学习中,用得最多的可能是导入方式。该方式在功能上没有任何限制,最大限度地发挥了Power BI集数据清洗、建模、可视化等为一体的优势。但该方法也有不足。...SSAS 表格模型 Excel的Power Pivot Power BI Power BI X SSAS Power BI与SSAS结合,简而言之,就是把原先在Power BI里进行的数据获取...SSAS最后部署(输出)一个表格数据模型。Power BI则实时连接这个模型进行可视化呈现。只要SSAS数据更新了,在Power BI上点一下刷新键即可一秒更新数据。...此外,由于整个模型都是在SSAS里搭建的,Power BI端将不能引入其他数据源,也不能编辑原SSAS的度量值,但可以新建度量值,纯粹作为可视化展示工具使用。

    4.6K41

    【Power BI X SSAS]——再看Power BI数据连接的三种方式

    数据不会存储在 Power BI 模型中。Power BI 将是一个可视化层,然后每次从数据源查询数据。Power BI 将只存储表的元数据(表名、列名、关系……)而不是数据。...,所以 Power BI 只连接到这些并获取所有模型元数据(度量名称、属性名称、关系...)。...SSAS 表格会给你 DAX,多维会给你 MDX。使用这两种语言中的任何一种,您都可以满足所有计算和建模需求。此方法比 DirectQuery 具有更好的建模功能。...因为在 DirectQuery 中,没有 DAX 或 MDX 作为帮助的分析语言。所有计算都需要在数据库端完成。有时在数据库端进行计算比在分析表达式语言中进行计算要复杂得多。...数据被加载到服务器的内存中,所有查询将立即得到解决。实时连接是此列表中的下一个选项,尤其是在使用 SSAS 表格或 Power BI 服务的情况下,因为这两种技术是内存技术并且比多维执行速度更快。

    9.3K31

    Excel催化剂功能第5波-使用DAX查询从PowerbiDeskTop中获取数据源

    ,无论性能上还是功能上都处于优势,PowerbiDeskTop每个月不断地迭代更新,除了在可视化组件方面有更新,在SSAS的建模内核上也是处于最新。...PowerbiDeskTop中获取数据源 - 简书 https://www.jianshu.com/p/21b2ca8fd2b8 视频演示 此篇文章功能较多,请仔细阅读文字,并结合实操练习,视频演示打算后续弄个直播之类的方式供大家现场观看...透视表向PowerbiDeskTop发出的查询是MDX查询,而非PowerbiDeskTop原生的DAX查询,MDX查询是传统的SSAS多维模型的查询语言,其对数据的聚合效率是很高,但一面对需要查询的颗粒度数据较细...)后,PowerbiDeskTop将自动生成DAX查询语句向SSAS模型发出查询请求,最终把数据结果返回到可视化组件中,同时还可以配合字段的筛选功能,当数据量大时只选取所要符合条件的数据子集。...查询结果覆盖现有工作表数据 查询的结果一般首次使用,会让其在新建的工作表中存储,若已经保存过数据,并且数据又再次引用了其他的公式或透视表,若仍然在新的工作表上重复之前做过的步骤,就未免太重复性低效工作了

    7.3K30

    求本年、本月、本周等数据

    本文转载:http://www.cnblogs.com/ethan-qi/archive/2013/05/14/3077371.html 其他关于SQL获取时间的方法:http://www.cnblogs.com...在SQL中不能用date()代替 它在那相当于now() 举例一周的 select * from 表 where datediff(week,时间字段,getdate())=0 要注意的是,datediff...select DATEADD(wk,DATEDIFF(wk,0,dateadd(dd,6-datepart(day,getdate()),getdate())), 0) 11.查询本周注册人数...(*) from [user] where datediff(month,create_day,getdate())=1 如果要效率,这样写查询 1.查询本周注册人数 select...还有2月只有28或29天当然也会存在这样的问题,只要稍微改动一下,在减天数的时候不应减当前时间的天数,而应减去加了月份之后的天数,如下写法: select dateadd(dd,-day

    82510

    浅谈 T-SQL高级查询

    *表名* where 出生日期>='1990-01-01' 分组查询: 将表中的数据通过 group by 子句分类组合,再根据需要得到的统计信息,只显示限定条件的组,需要使用 HAVING 子句 查询表中每个职务的平均工资...函数的综合应用: 查询未满30岁的员工的生日和年龄,并且计算出距离30岁的天数,最后用字符串拼接显示结果: 查询正确的结果 select 姓名,出生日期,DATEDIFF(YY,出生日期,GETDATE...()) 年龄, DATEDIFF(DD,GETDATE(),DATEADD(YY,30,出生日期)) 距离三十岁的天数 from test where DATEDIFF(YY,出生日期,GETDATE...(YY,出生日期,GETDATE()) AS varchar(10)) +'岁'+',距离三十岁还有'+ CAST( DATEDIFF(DD,GETDATE(),DATEADD(YY,30,出生日期...使用右外联接查询在表A和表B中使用内联接查询学生姓名、学校和职业。

    2.2K30

    SQL基础用法(实例一)

    355 select stor_id as '商店编号', sum(qty) as '总定购量' from sales group by stor_id 356 357 -- 在销售表中查询每个商店定购了那几本书以及每本书相应的订购量...416 -- 根据作者的名查找其编写的书籍 417 -- 先通过子查询获取作者编号 418 -- 然后,将其作为查询条件,找出相应的书籍编号 419 -- 最后,在利用所得到的书籍编号来得到书籍信息...439 print getdate() 440 441 -- 获取3天前的时间 442 print dateadd(day, -3 , getdate()) 443 -- 获取3天后的时间 444..., getdate()) 456 457 -- 获取指定时间之间相隔多少年 458 print datediff(year, '2005-01-01', '2008-01-01') 459 -- 获取指定时间之间相隔多少月...460 print datediff(month, '2005-01-01', '2008-01-01') 461 -- 获取指定时间之间相隔多少天 462 print datediff(day, '

    1.1K30

    你真的会玩SQL吗?实用函数方法汇总

    之逻辑查询处理阶段 你真的会玩SQL吗?和平大使 内连接、外连接 你真的会玩SQL吗?三范式、数据完整性 你真的会玩SQL吗?查询指定节点及其所有父节点的方法 你真的会玩SQL吗?...:"aaa" rtrim :使用 LTRIM 删除字符变量中的前导空格 ; RTRIM 删除字符变量中的尾随空格 rtrim(ltrim(splitdata)) -- 用select into 把数据放到临时表中...(wk,0,getdate()), 0) 本周最后一天(星期天) select dateadd(wk, datediff(wk,0,getdate()), 6) 得到上周一的日期: SELECT...SELECT DATEADD(wk, DATEDIFF(wk, '', DATEADD(dd, 6 - DAY(getdate()), getdate())), '') 今年第一天 SELECT...DATEADD(yy, DATEDIFF(yy,0,getdate()), 0) 今年最后一天 SELECT dateadd(ms,-3,DATEADD(yy, DATEDIFF

    1.7K90

    在 SQL 中,如何使用子查询来获取满足特定条件的数据?

    在 SQL 中,可以使用子查询来获取满足特定条件的数据。子查询是嵌套在主查询中的查询语句,它返回一个结果集,可以用来过滤主查询的结果。...下面是使用子查询来获取满足特定条件的数据的一般步骤: 在主查询中使用子查询,将子查询的结果作为条件。 子查询可以在主查询中的 WHERE 子句、FROM 子句或 HAVING 子句中使用。...子查询可以返回单个值或多个值,具体取决于使用的运算符和子查询的语法。 以下是一些示例: 使用子查询在 WHERE 子句中过滤数据: SELECT column1, column2, ......FROM (SELECT column FROM table WHERE condition) AS temp_table; 使用子查询在 HAVING 子句中过滤数据: SELECT column1,...FROM table GROUP BY column1 HAVING column1 > (SELECT AVG(column1) FROM table); 请注意,子查询的性能可能会较低,因此在设计查询时应谨慎使用

    9.2K10
    领券