如图,资产负债视图是事实表,损益表也是事实表。都包含年、月、组织、账簿信息。

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实现的差异的更多相关文章

  1. [SQL]复制数据库某一个表到另一个数据库中

    SQL:复制数据库某一个表到另一个数据库中 SELECT * INTO 表1 FROM 表2 --复制表2如果只复制结构而不复制内容或只复制某一列只要加WHERE条件就好了 例子:SELECT * I ...

  2. SQL批量更新数据库中所有用户数据表中字段类型为tinyint为int

    --SQL批量更新数据库中所有用户数据表中字段类型为tinyint为int --关键说明:--1.从系统表syscolumns中的查询所有xtype='48'的记录得到类型为[tinyint]的字段- ...

  3. 利用SQL语句查询数据库中所有表

    Oracle: SELECT * FROM ALL_TABLES;系统里有权限的表 SELECT * FROM DBA_TABLES; 系统表 SELECT * FROM USER_TABLES; 当 ...

  4. SQL Server R2 2008中的SQL Server Management Studio 阻止保存要求重新创建表的更改问题的设置方法

    在2008中会加入阻止保存要求重新创建表的更改这个选项.症状表现为修改表结构的时候会"阻止"你. SQL Server 2008“阻止保存要求重新创建表的更改”的错误的解决方案是本 ...

  5. 转发:使用sql命令查询视图中所有引用的基础表

    转自:使用sql命令查询视图中所有引用的基础表 使用sql命令查询视图中所有引用的基础表 之前有写过如何利用sql查询视图中所有引用的表发现这个方法并不能查出视图中所有的基础表,如果视图中有嵌套视图就 ...

  6. SQL Server 2008 R2中,变表的右键弹出菜单中的“选择前1000行”为“选择所有行”

    原文:SQL Server 2008 R2中,变表的右键弹出菜单中的"选择前1000行"为"选择所有行" 从SQL Server 2008开始,微软为了提高查询 ...

  7. SQL语句获取数据库中的表主键,自增列,所有列

    SQL语句获取数据库中的表主键,自增列,所有列   获取表主键 1:SELECT TABLE_NAME,COLUMN_NAME FROM INFORMATION_SCHEMA.KEY_COLUMN_U ...

  8. MS SQL Server Management Studio中提示不允许保长度出现不允许保存更改。您所做的更改要求删除并重新创建以下表

    在SQL Server Management Studio中直接修改正在连接的表结构会出现改不了的情况,如下图 解决方法:工具-选项-设计器--阻止保存要求重新创建表的更改,去掉对勾--确定即可

  9. 使用sql查询mysql/oracle/sql server/gp数据库中指定表的字段信息(字段名/字段类型/字段长度/是否是主键/是否为空)

    1,根据数据库类型拼接不同URL /** * 根据类型不同拼接连接的URL * @param dbType 1:mysql.2:oracle.3:sql server.4:gp * @param ip ...

随机推荐

  1. send anywhere真的好用啊

    手机和电脑互传文件,方便很多.

  2. jdbc和Java中的日期问题

    JDBC中的日期Java.sql.Date 是继承自Java中的Java.util.Date,在实现插入的时候可以 将Java.util.Date类型的时间转换成毫秒数,date.getTime(), ...

  3. ASP.NET WEBAPI设计(文摘)

    HTML5和移动应用推动WEB API的发展 第1部分 基础知识 第1章 因特网,万维网和HTTP协议 1.1 WEB体系结构 资源,URI(统一资源标识符)和表示 URI分为两种类型:URL(统一资 ...

  4. 各大主流.Net的IOC框架性能测试比较(转)

    出处:http://www.cnblogs.com/liping13599168/archive/2011/07/17/2108734.html 在上一篇中,我简单介绍了下Autofac的使用,有人希 ...

  5. Servlet.service() for servlet UserServlet threw exception java.lang.NullPointerException 空指针异常

    错误付现: 严重: Servlet.service() for servlet UserServlet threw exceptionjava.lang.NullPointerException at ...

  6. selenium设置代理,基于chrome浏览器

    工作中遇到需要对项目中使用的selenium设置代理,跟大家分享一下. 1.下载chromeDriver:http://chromedriver.storage.googleapis.com/inde ...

  7. linux每天一小步---find命令详解

    1 命令功能 find命令用于搜索指定目录下的文件,并配合参数做出相应的处理. 2 命令语法      find  搜索路径pathname 选项option [-exec -ok -print  执 ...

  8. SQL编程:group by合并结果字符串 ---> group_concat函数就能行

    1.表结构 create table tt(id int,v varchar(30));              insert into tt values(1,'a'),(1,'b'),(2,'b ...

  9. [C#]DES再一例(转)

    public class Encrypt { internal string ToEncrypt(string encryptKey, string str) { try { byte[] P_byt ...

  10. DataTables使用总结

    一.使用方法     1.引入JS文件 <script src="js/plugin/datatables/jquery.dataTables.min.js">< ...