The 'Transformable Aggmetric' VLDB setting was introduced in Strategy 9.0.0. It allows user to control what metrics to be utilized to perform transformations on compound metrics with nested aggregation.
This VLDB setting is located in metric editors, as shown below.

This VLDB setting is only available at metric level. The default value of this setting is False. It can only be applied when the following conditions are met.
If this option is set to True, the transformation will be applied to the children metrics within the aggregation function.
If this option is set to False, the transformation will be applied to the aggregatable metric instead of the children metrics.
Take the following example in Strategy Tutorial project to illustrate how this VLDB setting works:








Note the different SQLs generated for the transformation metric.
Transformable Aggmetric -False | Transformable Aggmetric -True |
create table ZZMD00 ( YEAR_ID SHORT, WJXBFS1 DOUBLE) insert into ZZMD00 select a11. AS YEAR_ID, sum(a11.) AS WJXBFS1 from a11 group by a11. create table ZZMD01 ( YEAR_ID SHORT, WJXBFS1 DOUBLE) insert into ZZMD01 select pa11. AS YEAR_ID, IIF(ISNULL((pa11. * pa11.)), 0, (pa11. * pa11.)) AS WJXBFS1 from pa11 create table ZZMD02 ( YEAR_ID SHORT, WJXBFS1 DOUBLE) insert into ZZMD02 select a12. AS YEAR_ID, IIF(ISNULL((pa11. * pa11.)), 0, (pa11. * pa11.)) AS WJXBFS1 from ( pa11 inner join a12 on (pa11. = a12.)) select pa11. AS YEAR_ID, pa11. AS WJXBFS1, pa12. AS WJXBFS2, pa13. AS WJXBFS3 from (( pa11 inner join pa12 on (pa11. = pa12.)) inner join pa13 on (pa11. = pa13.)) drop table ZZMD00 drop table ZZMD01 drop table ZZMD02 | create table ZZMD00 ( YEAR_ID SHORT, WJXBFS1 DOUBLE) insert into ZZMD00 select a11. AS YEAR_ID, sum(a11.) AS WJXBFS1 from a11 group by a11. create table ZZMD01 ( YEAR_ID SHORT, WJXBFS1 DOUBLE) insert into ZZMD01 select pa11. AS YEAR_ID, IIF(ISNULL((pa11. * pa11.)), 0, (pa11. * pa11.)) AS WJXBFS1 from pa11 create table ZZMD02 ( YEAR_ID SHORT, WJXBFS1 DOUBLE) insert into ZZMD02 select a12. AS YEAR_ID, sum(a11.) AS WJXBFS1 from ( a11 inner join a12 on (a11. = a12.)) group by a12. create table ZZMD03 ( YEAR_ID SHORT, WJXBFS1 DOUBLE) insert into ZZMD03 select pa11. AS YEAR_ID, IIF(ISNULL(((IIF(ISNULL(pa11.), 0, pa11.) - IIF(ISNULL(pa12.), 0, pa12.)) * (IIF(ISNULL(pa11.), 0, pa11.) - IIF(ISNULL(pa12.), 0, pa12.)))), 0, ((IIF(ISNULL(pa11.), 0, pa11.) - IIF(ISNULL(pa12.), 0, pa12.)) * (IIF(ISNULL(pa11.), 0, pa11.) - IIF(ISNULL(pa12.), 0, pa12.)))) AS WJXBFS1 from ( pa11 inner join pa12 on (pa11. = pa12.)) select pa11. AS YEAR_ID, pa11. AS WJXBFS1, pa12. AS WJXBFS2, pa13. AS WJXBFS3, pa14. AS WJXBFS4 from ((( pa11 inner join pa12 on (pa11. = pa12.)) inner join pa13 on (pa11. = pa13.)) inner join pa14 on (pa11. = pa14.)) drop table ZZMD00 drop table ZZMD01 drop table ZZMD02 drop table ZZMD03 |