我正在创建一个多维数据集,其股票值应该只能得出每个月的余额和值的最后一天。排除SSAS多维数据集中的数据的问题(使用EOMONTH()的SSMS和SSAS中的不同输出)
因此,我创建了一个SSMS以下查询:
Create table #theStockTable(
Stock int,
StockValue INT,
DateKey int
)
INSERT INTO #theStockTable
VALUES(3,5, 20170211),
(3,5,20170228),
(1,4,20170331),
(1,4,20170330)
SELECT CAST(CONVERT(varchar, DateKey, 112) AS numeric(8, 0)) AS DateKey, SUM(Stock) AS [CL Stock], SUM(StockValue) AS [CL Stock Value]
FROM #theStockTable
WHERE CONVERT(date, CONVERT(varchar(10), DateKey)) = eomonth(CONVERT(date, CONVERT(varchar(10), DateKey)))
GROUP BY DateKey
在SSMS这将返回正确的值:
DateKey CL Stock CL Stock Value
20170228 3 5
20170331 1 4
然而,当我创建一个使用SSAS OLAP多维数据集,并使用上面的查询作为Named Query
为我的事实表#theStockTable
和相同的查询作为我同一事实表的唯一分区,并部署和执行多维数据集,我有一种情况,我每个月的每一天获得不同的值,但我只想拥有每个月的价值最后一天。
我在SSAS中使用了New Project.. -> Import from Server (multidimensional model or data mining model)
。 重要的是用户必须能够按照他们目前的方式浏览多维数据集。
已复制元数据的多维数据集包含股票表上的每一天的值。除了我在Edit named Query..
的Data Source View
中完成的查询修改以及用我的新查询替换分区中的旧查询以外,是否还需要更改一些元数据?
希望有人能够对此有所了解。
编辑
为了澄清我的要求,立方体的一些用户解释说,这是相当慢的浏览例如Excel中,主要是因为我的Stock
措施是比它需要更大是。现在,它会返回每个产品和每一天的每个StockValue
和Stock
。我只想包括月份最后一天的StockValue
和Stock
的总余额。所有其他股票价值是多余的。
例如,浏览我DimDate
维度表与测量Stock
和StockValue
应该有这样的回报集:
DateKey Stock StockValue
20170131 0 0
,而不是整个返回集现在返回:
DateKey Stock StockValue
20170101 3 5
20170102 4 6
20170103 1 1
20170131 0 0
对不起,以便延迟回复。不幸的是,我还没有机会像迄今为止一样致力于完成这些任务。根据我的理解,使用此解决方案可以通过使用特定查询浏览多维数据集来获得预期结果。我正在寻找一种方法来浏览具有特定度量属性的多维数据集。我将尝试将您的查询作为计算成员实施并测试。不过,我现在有一些问题需要部署多维数据集。 – Cenderze