1

「新しい名前付きクエリ」を使用して、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 QueryforDVSで変数を宣言することはできません。変数がないようにSQLステートメントを変更する方法はありますか?@AvgInvestmentを"SELECTSUM(Investment)/ COUNT(distinct meta_ID)FROM AAAA"に置き換えようとしましたが、機能しません。

可能な解決策をありがとう!

4

1 に答える 1

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

データ ソース ビューで完全に動作します。そこではストアド プロシージャは機能しません。

于 2012-08-25T19:29:23.493 に答える