我在SQL数据库中使用以下格式的财务数据,不幸的是我不得不使用这种格式(下面是示例虚拟数据)。
然而,我一直在努力将其纳入BIRT报告中的以下布局。
我尝试创建一个数据多维数据集,其中包,流量和帐户作为维度和余额作为度量,但是它将实际PER和实际YTD彼此相邻,并且预算PER和YTD彼此相邻等等所以不是我真的需要。
我的另一个想法是创建四个新的计算列,第一个只有一个值,如果它是一行实际和每个,下一个只有它是实际和ytd等,但无法获得IF功能在计算列中工作。
有哪些选择?有人能指出我如何从这个数据结构中最好地创建上面的布局,所以我可以从那里拿走它吗?
提前致谢。
答案 0 :(得分:1)
我不确定你在后端使用的是什么数据库,但这就是我用SQL Server做的。
重要的一位发生在数据集中。这是我的数据集的SQL:
SELECT
Account,
Package,
Flow,
Balance
FROM data
UNION
SELECT DISTINCT
Account,
'VARIANCE',
Flow,
(SELECT COALESCE(SUM(Balance),0) FROM data WHERE Account = d.Account AND Flow = d.Flow AND Package = 'ACTUAL') - (SELECT COALESCE(SUM(Balance), 0) FROM data WHERE Account = d.Account AND Flow = d.Flow AND Package = 'BUD') as Balance
FROM data d
这给了我一张表:
然后我创建了一个包含
的DataCube然后我创建了一个基于该DataCube的CrossTab报告
这会产生以下结果:
希望这有帮助。