如何在 MicroStrategy Developer 中将列旋转为行

问题描述 投票:0回答:1

这是我的桌子

合约ID 期间 预测 不足
1 5月23日 35325 456
2 6月24日 3466 768
3 9月22日 457657 879

我需要输出为:

合约ID 5月23日预测 5月23日短缺 6月24日预报 6月24日短缺 9月22日预测 9月22日短缺 总体预测 总缺口
1 35325 456 35325 456
2 3466 768 3466 768
3 457657 879 457657 879

在 MicroStrategy Developer 中。

我可以通过将 period 属性放置在行级别进行预测来实现此目的,但之后我无法添加另一个指标。

大家有什么建议吗?

sql report reporting microstrategy
1个回答
0
投票

所以,(不是 MicroStrategy 的具体答案) 也就是说,我始终相信将业务逻辑放置在更靠近数据库的位置是有好处的。

--如果您知道周期(如果它们是固定的,这很容易)

选择 , 合约_ID , 期间 = 'May23' 时的情况 那么预测 否则为空 截至 5 月 23 日预测 , 期间 = 'May23' 时的情况 那么短缺 否则为空 截至 5 月 23 日短缺 , 期间 = 'June24' 时的情况 那么预测 否则为空 截至 6 月 24 日预测 , 期间 = 'June24' 时的情况 那么短缺 否则为空 截至 6 月 24 日短缺 ... 来自您的餐桌 ; 等等

-- 如果您不确定它们是什么时期,但您知道可以完成多少次(假设一年 12 个)这样的事情

选择 合约ID , 时期 , MAX(当 PERIOD_COUNTER = 1 时的情况 那么预测 否则为空 结束)作为预测1 , MAX(当 PERIOD_COUNTER = 1 时的情况 那么短缺 否则为空 完) AS 短缺1 , MAX(当 PERIOD_COUNTER = 2 时 那么预测 否则为空 结束)作为预测1 , MAX(当 PERIOD_COUNTER = 2 时 那么短缺 否则为空 完) AS 短缺1 ... 来自您的餐桌 交叉连接 (选择 时期 , ROW_NUMBER() OVER(按期间排序) AS PERIOD_COUNTER 从您的餐桌上 按 1 分组 ) ;

© www.soinside.com 2019 - 2024. All rights reserved.