MDX之Case When用法
with
member [Measures].[终端销售数量总计] as
sum(ytd([日期].[年月].CurrentMember),[Measures].[终端销售数量]) member [Measures].[仓库出货数量] as
sum(ytd([日期].[年月].CurrentMember)*[物流类型].[物流类型ID].&[仓库出货],[Measures].[渠道出货数量_出货日期]) member [Measures].[收退数量] as
sum(ytd([日期].[年月].CurrentMember)*[物流类型].[物流类型ID].&[仓库收退],[Measures].[渠道收货数量])
+
sum(ytd([日期].[年月].CurrentMember)*[物流类型].[物流类型ID].&[店仓调拨],[Measures].[渠道收货数量]) member [Measures].[销售数量] as
[Measures].[终端销售数量总计]+[Measures].[仓库出货数量]-[Measures].[收退数量] member [Measures].[月均销售数量1] as
[Measures].[销售数量]/left( [日期].[年月].CurrentMember.Properties('Name'),2) --left截取
,Format_String = "#,##0.00" member [Measures].[月均销售数量] as
case
when ([日期].[年月].currentmember.parent.children.item(0),[Measures].[终端销售数量])<>null
then [Measures].[销售数量]/left( [日期].[年月].CurrentMember.Properties('Name'),2)
when ([日期].[年月].currentmember.parent.children.item(1),[Measures].[终端销售数量])<>null
then [Measures].[销售数量]/(left( [日期].[年月].CurrentMember.Properties('Name'),2)-1)
when ([日期].[年月].currentmember.parent.children.item(2),[Measures].[终端销售数量])<>null
then [Measures].[销售数量]/(left( [日期].[年月].CurrentMember.Properties('Name'),2)-2)
when ([日期].[年月].currentmember.parent.children.item(3),[Measures].[终端销售数量])<>null
then [Measures].[销售数量]/(left( [日期].[年月].CurrentMember.Properties('Name'),2)-3)
when ([日期].[年月].currentmember.parent.children.item(4),[Measures].[终端销售数量])<>null
then [Measures].[销售数量]/(left( [日期].[年月].CurrentMember.Properties('Name'),2)-4)
when ([日期].[年月].currentmember.parent.children.item(5),[Measures].[终端销售数量])<>null
then [Measures].[销售数量]/(left( [日期].[年月].CurrentMember.Properties('Name'),2)-5)
when ([日期].[年月].currentmember.parent.children.item(6),[Measures].[终端销售数量])<>null
then [Measures].[销售数量]/(left( [日期].[年月].CurrentMember.Properties('Name'),2)-6)
when ([日期].[年月].currentmember.parent.children.item(7),[Measures].[终端销售数量])<>null
then [Measures].[销售数量]/(left( [日期].[年月].CurrentMember.Properties('Name'),2)-7)
when ([日期].[年月].currentmember.parent.children.item(8),[Measures].[终端销售数量])<>null
then [Measures].[销售数量]/(left( [日期].[年月].CurrentMember.Properties('Name'),2)-8)
when ([日期].[年月].currentmember.parent.children.item(9),[Measures].[终端销售数量])<>null
then [Measures].[销售数量]/(left( [日期].[年月].CurrentMember.Properties('Name'),2)-9)
when ([日期].[年月].currentmember.parent.children.item(10),[Measures].[终端销售数量])<>null
then [Measures].[销售数量]/(left( [日期].[年月].CurrentMember.Properties('Name'),2)-10)
when ([日期].[年月].currentmember.parent.children.item(11),[Measures].[终端销售数量])<>null
then [Measures].[销售数量]/(left( [日期].[年月].CurrentMember.Properties('Name'),2)-11)
else null end
,Format_String = "#,##0.00" select {
[Measures].[终端销售数量总计],[Measures].[仓库出货数量],[Measures].[收退数量],
[Measures].[销售数量],[Measures].[月均销售数量1],[Measures].[月均销售数量]
} on 0,
non empty{
[货品].[品牌].[品牌]
} on 1
from [YeehooCube]
where [日期].[年月].[年].&[].&[05月]
MDX之Case When用法的更多相关文章
- Oracle CASE WHEN 用法介绍
1. CASE WHEN 表达式有两种形式 --简单Case函数 CASE sex WHEN '1' THEN '男' WHEN '2' THEN '女' ELSE '其他' END --Case搜索 ...
- Oracle CASE WHEN 用法介绍[Z]
Oracle CASE WHEN 用法介绍 1. CASE WHEN 表达式有两种形式 --简单Case函数 CASE sex WHEN '1' THEN '男' WHEN '2' THEN '女' ...
- oracle case when 用法
原文:http://www.cnblogs.com/eshizhan/archive/2012/04/06/2435493.html 1. CASE WHEN 表达式有两种形式 --简单Case函数 ...
- 问题:oracle case when;结果:Oracle CASE WHEN 用法介绍
Oracle CASE WHEN 用法介绍 1. CASE WHEN 表达式有两种形式 --简单Case函数 CASE sex WHEN '1' THEN '男' WHEN '2' THEN '女' ...
- case when 用法
1. case.group by组合用法 首先看看表中的内容 (COUNTRY . POPULATION. SEX) COUNTRY POPULATION SEX 中国 中国 美国 美国 加拿大 ...
- js部分---运算符,if分支语句,for循环;switch case 的用法;
------------------------------------------运算符---------------------------------------------------- *数 ...
- SQL中的CASE的用法
CASE在SQL语句中,很有点类似java等高级编程语言中的switch这样子的多分枝语句,但是有点不同的是,case后面接的是when,另外,when的后续分枝有点类似if后面接else.这个是我的 ...
- mysql if 和 case when 用法 多个when情况用一个语句 存储过程
在实际开发中,经常会用到 if 和 case when的用法,记录一下,以后可以用得到. DELIMITER $$ USE `数据库`$$ DROPPROCEDUREIFEXISTS `GetNoti ...
- oracle中DECODE与CASE的用法区别
对于CASE与DECODE其实并没有太多的区别,他们都是用来实现逻辑判断.Oracle的DECODE函数功能很强,灵活运用的话可以避免多次扫描,从而提高查询的性能.而CASE是9i以后提供的语法,这个 ...
随机推荐
- 深入理解c语言——‘\0’ ,‘0’, “0” ,0之间的区别
看来基础还是很重要的,基础不扎实就难以学好c语言,就别说写出高质量的c语言代码了.今天,我就被这个问题折磨的不行了,哈哈,不过现在终于明白了‘\0’ ,‘0’, “0” 之间的区别了.困惑和快乐与你分 ...
- SPOJ Find the max XOR value(二进制,贪心即可)
You have two integers L and R, and you are required to find the max xor value of a and b where L < ...
- 如何判断一个for循环执行完毕
在外面一个变量a=arr.leng; 然后就是进行for循环, 在for循环下面进行判断,因为如果结束那么i的值就会>=a;if条件成立的话,可以在里面进行循环完毕要做的操作.
- 洛谷P1462通往奥格瑞玛的道路——二分答案最短路
题目:https://www.luogu.org/problemnew/show/P1462 最大值最小问题,二分答案. 代码如下: #include<iostream> #include ...
- 魔法少女-dp
魔法少女 Time Limit: 1000MS Memory Limit: 65535KB 64bit IO Format: %I64d & %I64u 前些时间虚渊玄的巨献小圆着实火 ...
- firewalld·使用方法示例
firewalld使用方法示例 # systemctl start firewalld # 启动, # systemctl enable firewalld # 开机启动 # systemctl st ...
- C# ActiveX 中static变量缓存的问题
最近在忙活一个绘图程序,按照要求需要以ActiveX的方式发布在网站中,这个绘图程序的大概功能就是从数据库获取数据,成图.发布后用户反映,数据变化后,图形没有发生变化,好像有缓存,如果把浏览器全部关闭 ...
- js搜索相同类型的控件全选、取值(Checkbox)
function selectAll(obj) { if (obj.checked) { $("input[type='checkbox']").each(function () ...
- sort()的升降序函数操作
sort()函数包含在头文件#include <algorithm>中,是常用的排序函数. functional提供了一堆基于模板的比较函数对象.它们是:equal_to<Type& ...
- bugfree-解决方案的意思
BugFree的7种解决方案各自的含义: By Design - 就是这么设计的,无效的Bug Duplicate - 这个问题别人已经发现了,重复的Bug External - 是个外部因素(比如浏 ...