Tsql SSAS数据源视图变量
我正在尝试使用新的命名查询在SSAS的数据源视图中添加一个表。脚本如下所示:Tsql SSAS数据源视图变量,tsql,variables,ssas,dataview,Tsql,Variables,Ssas,Dataview,我正在尝试使用新的命名查询在SSAS的数据源视图中添加一个表。脚本如下所示: Declare @AvgInvestment float; SELECT @AvgInvestment=SUM(Investment)/COUNT(distinct meta_ID) FROM AAAA SELECT Player, Investment, InvestmentRange= Case When Investment >
Declare @AvgInvestment float;
SELECT @AvgInvestment=SUM(Investment)/COUNT(distinct meta_ID)
FROM AAAA
SELECT Player, Investment,
InvestmentRange=
Case When Investment >=0 AND Investment <(@AvgInvestment/3) THEN 1
When Investment >=(@AvgInvestment/3) AND Investment <(4*@AvgInvestment/3) THEN 2
When Investment >=(4*@AvgInvestment/3) AND Investment <(6*@AvgInvestment/3) THEN 3
When Investment >=(2*@AvgInvestment) THEN 4
END
FROM AAAA
但是,SSAS不允许在DVS的SQL查询中声明变量。是否有任何可能的方法来修改SQL语句,使其没有变量?我试图从AAAA中将@AvgInvestment替换为SELECT SUMMINVENT/COUNTdistinct meta_ID,但它不起作用
感谢所有可能的解决方案 您可以使用变量与平均值相加。例如:
SELECT Player, Investment,
InvestmentRange=
Case When Investment >=0 AND Investment <(a.avg/3) THEN 1
When Investment >=(a.avg/3) AND Investment <(4*a.avg/3) THEN 2
When Investment >=(4*a.avg/3) AND Investment <(6*a.avg/3) THEN 3
When Investment >=(2*a.avg) THEN 4
END
FROM AAAA cross join
(select SUM(Investment)/COUNT(distinct meta_ID) as avg from aaaa) a
在数据源视图中可以完美地工作。存储过程在那里不起作用。您可以使用变量与平均值合并。例如:
SELECT Player, Investment,
InvestmentRange=
Case When Investment >=0 AND Investment <(a.avg/3) THEN 1
When Investment >=(a.avg/3) AND Investment <(4*a.avg/3) THEN 2
When Investment >=(4*a.avg/3) AND Investment <(6*a.avg/3) THEN 3
When Investment >=(2*a.avg) THEN 4
END
FROM AAAA cross join
(select SUM(Investment)/COUNT(distinct meta_ID) as avg from aaaa) a
在数据源视图中可以完美地工作。存储过程在那里不起作用。不记得是否可能在SSAS的数据源视图中,但您可以尝试使用存储过程获取数据。不记得是否可能在SSAS的数据源视图中,但您可以尝试使用存储过程获取数据。