1
以下のロジックを使用してエージングバケットを設定することをお勧めします。クエリではバケットがすべて空白になります。もともと私はを持っていたロジックを使っていましたが、lag
は実際の日ではなくメンバーレベルを数えていました。私はここで何が欠けていますか?MDXを使用したエージングバケット
WITH
member [0-30] as (IIF (Datediff("d", [TXN].[Age Date], STRTOMEMBER(@ToDOSDate,CONSTRAINED)) >=0 AND Datediff("d", [TXN].[Age Date], STRTOMEMBER(@ToDOSDate,CONSTRAINED)) <= 30
, [measures].[charge_amount] , 0)
)
member [31-60] as (IIF(Datediff('d', [TXN].[Age Date], STRTOMEMBER(@ToDOSDate,CONSTRAINED)) >=31 AND Datediff('d', [TXN].[Age Date], STRTOMEMBER(@ToDOSDate,CONSTRAINED)) <= 60
,[measures].[charge_amount], 0)
)
member [61-90] as (IIF(Datediff("d", [TXN].[Age Date], STRTOMEMBER(@ToDOSDate,CONSTRAINED)) >=61 AND Datediff("d", [TXN].[Age Date], STRTOMEMBER(@ToDOSDate,CONSTRAINED)) <= 90
,[measures].[charge_amount], 0)
)
member [91-120] as (IIF(Datediff("d", [TXN].[Age Date], STRTOMEMBER(@ToDOSDate,CONSTRAINED)) >=91 AND Datediff("d", [TXN].[Age Date], STRTOMEMBER(@ToDOSDate,CONSTRAINED)) <= 120
,[measures].[charge_amount], 0)
)
member [120+] as (IIF(Datediff("d", [TXN].Age Date], STRTOMEMBER(@ToDOSDate,CONSTRAINED)) >= 120
,[measures].[ charge_amount], 0)
)
これは修正されませんが、最後のステートメントは> 120でなければなりません。91-120ステートメントにはすでに120が含まれています。また、@ ToDOSDateのデータ型は? –
@WEI_DBAに感謝しますか? :) – mrbungle
それはdatetimeです – mrbungle