SSRS 如何在设计器里写表达式

0
见图,我想在最后一列 "2013年6月产能" 里显示 2013年的6月份的产能数据。

比如 有 2条相同的 "上海","华东","上海赛科", 不同时间 一个"2013年1月",另一个"2013年6月".
我想取最后一个月的"有效产能".

我开始想是不是写 MAX("有效产能") 可以达到,可是没用。它只是针对 自己的每条做了一个MAX.
有没有办法,针对我筛选出来的条件做MAX?

类似 写TSQL, 像下面这种情况。 我现在的 "2013年6月产能" 列里,就是想得到 150这个数据。

公司 生产线 产能 年 月 最大产能
a 1 100 2013 1 150
b 1 150 2013 2 150
c 1 90 2013 3 150

已邀请:
0

BIWORK - 热衷于微软BI技术,技术架构和解决方案! 2014-01-02 回答

不清楚你的这个六月是固定的时间点还是说查询一年中最大的值?
你可以看一下这个 MDX 查询的例子 -

-- 当前示例的日期层次结构包含了 YEAR - HALF YEAR - QUARTER - MONTH - DATE
-- 因此不能直接通过 Member.Siblings 等方式直接获取月份成员
WITH
MEMBER . AS
MAX(
-- DESCENDANTS 根据当前年获取 .. 级别上的所有月份
DESCENDANTS(
-- ANCESTORS 根据当前日期成员获取当年所在的年
ANCESTORS(..CurrentMember,..).ITEM(0),
..),
.
)
MEMBER . AS
ANCESTORS(..CurrentMember,..).ITEM(0).NAME
SELECT {
.,
.,
.
} ON COLUMNS,
...MEMBERS ON ROWS
FROM

应该和这个效果差不多
4.png
0

BIWORK - 热衷于微软BI技术,技术架构和解决方案! 2014-01-03 回答

如果直接是在 SSRS 里的,那么可以直接使用 MAX 函数。
通过我们可能只会用 MAX(产能),

但是忽略了其它的参数 - =Max(产能, GroupName),Max(expression, scope, recursive)

研究一下这个
http://technet.microsoft.com/z ... .aspx
0

天桥下的郑成功 - Hadoop大数据开发工程师、数仓架构师、熟悉数据仓库设计、Hadoop、Spark、HBase、Hive、SSIS等开发 2014-01-03 回答

aaaa.PNG



试过了 Max(产能, GroupName) 的形式, 可以。
不过它其实是依赖行上面的Group的,意思就是说 如果你新建一个列,这个列的每行都是 按照行的分类最大或者最小值。 Max() 要依赖于 你行的分组.

行的分组已经按照"地区"进行了分组,但是列又要要求按照 "公司名称","生产线" 进行统计(计算最大, 和 最后Last()). 感觉这完全不可能啊。

其实想想也对,一个Table的数据,你对列进行编辑计算。 怎么可能不对行有所参照。

我这边要求比较变态,除了 要求每种分类的最大之外(一列),还要求Last() 就是说要按照时间排序(另外一列)。

试想,你都已经按照 地区排序了(见上图),怎么又要按照 时间排序呢?
0

天桥下的郑成功 - Hadoop大数据开发工程师、数仓架构师、熟悉数据仓库设计、Hadoop、Spark、HBase、Hive、SSIS等开发 2014-01-03 回答

针对这个问题,这2天查阅了不少文档。
发现了不少RS的功能,比如可以 Category, Subcategory 2个DataSet之间的Lookup.
可以在Table数据绑定的时候,将它们写进VB的ArrayList, 绑定结束后。 将ArrayList的结果绑定到Total列上.
SSRS的 Code Behind, 就是自己实现Function 不过是VB的代码,万恶的Microsoft.

要回复问题请先登录注册