多事实表 SQL实现和SSAS中MDX实现的差异
如图,资产负债视图是事实表,损益表也是事实表。都包含年、月、组织、账簿信息。

SQL如何实现呢?
简单粗暴,事实事实表串事实表,Full Join
select
损益视图.年
,损益视图.年月
,损益视图.期间
,损益视图.账簿名称
,损益视图.组织编码
,损益视图.组织名称
,损益视图.项目名称 损益项目
,损益视图.本期发生数 损益本期
,资产负债视图.项目名称 资产项目
,资产负债视图.年初数 资产年初
,资产负债视图.期末数 资产期末 from 损益视图
full join 资产负债视图
on 损益视图.年月 = 资产负债视图.年月
and 损益视图.年 =资产负债视图.年
and 损益视图.期间 = 资产负债视图.期间
and 损益视图.账簿名称 = 资产负债视图.账簿名称
and 损益视图.组织编码 = 资产负债视图.组织编码
where 损益视图.账簿名称 ='蓝海电子公司主账簿'
SSAS 表格模式中借助视图模式看

不能直接事实表串事实表,必须通过中间的维度表来关联。
SELECT
NON EMPTY {Hierarchize(
{[Measures].[年初数 的总和], [Measures].[期末数 的总和], [Measures].[本期发生数 的总和]}
)
}
ON COLUMNS, NON EMPTY {Hierarchize(
{
CROSSJOIN({[年月表].[时间].[年]}
,CROSSJOIN({[年月表].[月份].[月份]}
,CROSSJOIN( {[组织架构表].[组织编码].[组织编码]},
CROSSJOIN({[组织架构表].[组织名称].[组织名称]}
,CROSSJOIN({[账簿表].[账簿名称].[账簿名称]}
,CROSSJOIN({[损益视图].[项目名称].[项目名称]} ,{[资产负债视图].[资产项目].[资产项目]})
)
)
)
) ) }
)
}
ON ROWS
FROM [FinBPCube]
SSAS系列随笔
多事实表 SQL实现和SSAS中MDX实现的差异的更多相关文章
- [SQL]复制数据库某一个表到另一个数据库中
SQL:复制数据库某一个表到另一个数据库中 SELECT * INTO 表1 FROM 表2 --复制表2如果只复制结构而不复制内容或只复制某一列只要加WHERE条件就好了 例子:SELECT * I ...
- SQL批量更新数据库中所有用户数据表中字段类型为tinyint为int
--SQL批量更新数据库中所有用户数据表中字段类型为tinyint为int --关键说明:--1.从系统表syscolumns中的查询所有xtype='48'的记录得到类型为[tinyint]的字段- ...
- 利用SQL语句查询数据库中所有表
Oracle: SELECT * FROM ALL_TABLES;系统里有权限的表 SELECT * FROM DBA_TABLES; 系统表 SELECT * FROM USER_TABLES; 当 ...
- SQL Server R2 2008中的SQL Server Management Studio 阻止保存要求重新创建表的更改问题的设置方法
在2008中会加入阻止保存要求重新创建表的更改这个选项.症状表现为修改表结构的时候会"阻止"你. SQL Server 2008“阻止保存要求重新创建表的更改”的错误的解决方案是本 ...
- 转发:使用sql命令查询视图中所有引用的基础表
转自:使用sql命令查询视图中所有引用的基础表 使用sql命令查询视图中所有引用的基础表 之前有写过如何利用sql查询视图中所有引用的表发现这个方法并不能查出视图中所有的基础表,如果视图中有嵌套视图就 ...
- SQL Server 2008 R2中,变表的右键弹出菜单中的“选择前1000行”为“选择所有行”
原文:SQL Server 2008 R2中,变表的右键弹出菜单中的"选择前1000行"为"选择所有行" 从SQL Server 2008开始,微软为了提高查询 ...
- SQL语句获取数据库中的表主键,自增列,所有列
SQL语句获取数据库中的表主键,自增列,所有列 获取表主键 1:SELECT TABLE_NAME,COLUMN_NAME FROM INFORMATION_SCHEMA.KEY_COLUMN_U ...
- MS SQL Server Management Studio中提示不允许保长度出现不允许保存更改。您所做的更改要求删除并重新创建以下表
在SQL Server Management Studio中直接修改正在连接的表结构会出现改不了的情况,如下图 解决方法:工具-选项-设计器--阻止保存要求重新创建表的更改,去掉对勾--确定即可
- 使用sql查询mysql/oracle/sql server/gp数据库中指定表的字段信息(字段名/字段类型/字段长度/是否是主键/是否为空)
1,根据数据库类型拼接不同URL /** * 根据类型不同拼接连接的URL * @param dbType 1:mysql.2:oracle.3:sql server.4:gp * @param ip ...
随机推荐
- fiddler手机抓包
配置好之后,发现手机不能连接代理服务器,用netstat发现根本就没有手机的ip地址,于是猜想是不是防火墙的问题,关闭防火墙果然能连上,开启防火墙又连不上了,这就说明确实是防火墙的问题,关闭防火墙又很 ...
- golang之流程控制(注意点)
Go在流程控制方面特点如下: 没有do和while循环,只有一个广义的for语句 switch语句灵活多变,还可以用于类型判断 if语句和switch语句都可以包含一条初始化子语句 break语句和c ...
- linux 查找php.ini在那个文件夹
第一种方法:通过phpinfo查看 第二种方法: 执行 php -i | grep php.ini 结果如下:
- HBase-1.2.1和Phoenix-4.7.0分布式安装指南
目录 目录 1 1. 前言 2 2. 概念 2 2.1. Region name 2 3. 约定 2 4. 相关端口 3 5. 下载HBase 3 6. 安装步骤 3 6.1. 修改conf/regi ...
- Java学习总结——常见问题及解决方法
CYTX项目开发中遇到的问题及解决方法 Android开发各类常见错误解决方案: 使用Android Studio遇到的问题及解决过程 登录注册部分问题及解决: 1.问题:"No targe ...
- ASP.NET Core2使用Autofac实现IOC依赖注入竟然能如此的优雅简便
初识ASP.NET Core的小伙伴一定会发现,其几乎所有的项目依赖都是通过依赖注入方式进行链式串通的.这是因为其使用了依赖注入 (DI) 的软件设计模式,代码的设计是遵循着“高内聚.低耦合”的原则, ...
- myeclipse过期以后提示过期以后怎么办?!
昨天电脑上装的myeclipse到期了,不能进到工作空间里边,只有激活和退出选项,在网上百度了一下,有很多破解工具, 1.刚开始直接使用工具破解,没有成功,总是提示要么激活,要么退出 2.继续想办法, ...
- Core引用Jquery文件
静态文件放在wwwroot里边 不然浏览器会报错文件不存在.
- asp.net mvc 3 linq实现数据的增、删、改、查、
添加数据 定义一个对象: public class Student { public int id{get; set;} public string Name{get;set;} public str ...
- unix网络编程卷2:进程间通信
管道没有名字,只能有亲缘关系使用. FIFO也叫有名管道,有名所以没有了这个限制. 管道提供一个单向数据流,创建函数返回两个文件描述符.一个用来读,一个用来写. 宏S_ISFIFO可用于确定一个描述符 ...