Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Tsql SSAS数据源视图变量_Tsql_Variables_Ssas_Dataview - Fatal编程技术网

Tsql 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 >

我正在尝试使用新的命名查询在SSAS的数据源视图中添加一个表。脚本如下所示:

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的数据源视图中,但您可以尝试使用存储过程获取数据。