【问题标题】:SSAS Data Source View VariableSSAS 数据源视图变量
【发布时间】:2012-08-24 21:13:58
【问题描述】:

我正在尝试使用“新命名查询”在 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 不允许在 SQL Query for DVS 中声明变量。是否有任何可能的方法来修改 SQL 语句以使其没有变量?我试图将 @AvgInvestment 替换为 "SELECT SUM(Investment)/COUNT(distinct meta_ID) FROM AAAA" ,但它不起作用。

感谢任何可能的解决方案!

【问题讨论】:

  • 不记得是否可能在 SSAS 的数据源视图中,但您可以尝试使用存储过程来获取数据。

标签: tsql variables ssas dataview


【解决方案1】:

您可以加入平均数,而不是使用变量。例如:

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

在数据源视图中完美运行。存储过程在那里不起作用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-26
    相关资源
    最近更新 更多