0

MDX クエリで日付をフォーマットする方法を教えてください。SSRS を使用してレポートを生成することはありません。SSAS に基づいて構築された独自のカスタマイズされたレポート ツールがあります。Date フィルターは、yyyy/mm/dd 形式で日付を送信します。現在のところ、日付ディメンションはありません。私の日付メンバーは次のようになります:

[CNB_DimSampleInfo].[COAReleasedON].&[2013-01-02T03:20:00]. 

STRTOmemeber で日付をフォーマットするにはどうすればよいですか? 私はこれをやってみました。私の質問は、ユーザーから得られる価値が、以下のように私のメンバーのフォーマットにどのように適合するかです。ssrs で簡単にできることはわかっていますが、SSRS は使用していません。以下は私のコードです

私のコード

 SELECT 
  [Measures].[Result] ON COLUMNS
 ,NON EMPTY 
    {
        [CNB_DimProduct].[ProductUcode].[ProductUcode].ALLMEMBERS*
        [CNB_DimProduct].[ProductDesc].[ProductDesc].ALLMEMBERS*
        [CNB_DimTest].[TestUcode].[TestUcode].ALLMEMBERS*
        [CNB_DimTest].[TestName].[TestName].ALLMEMBERS*
        [CNB_DimSampleInfo].[LotNo].[LotNo].ALLMEMBERS*
        [CNB_DimSampleInfo].[BatchNo].[BatchNo].ALLMEMBERS*
        [CNB_DimSampleInfo].[COAReleasedBy].[COAReleasedBy].ALLMEMBERS*
        [CNB_DimSampleInfo].[COAReleasedON].[COAReleasedON].ALLMEMBERS*
        [CNB_DimSampleInfo].[SampleReferenceNo].[SampleReferenceNo].ALLMEMBERS*
        [CNB_DimSampleInfo].[AnalysedBy].[AnalysedBy].ALLMEMBERS*
        [CNB_DimSampleInfo].[AnalysedOn].[AnalysedOn].ALLMEMBERS
    } ON ROWS
FROM 
(
  SELECT 
    StrToMember
    (
            "[CNB_DimSampleInfo].[COAReleasedON].[" + Format("2013-01-02","yyyy MM")
          + "]:STRTOMember([CNB_DimSampleInfo].[COAReleasedON].["
        + 
          Format
          ("2013-01-02"
           ,"yyyy MM"
          )
      + "]"
    ) ON COLUMNS
  FROM Cube001
);
4

3 に答える 3

0

あなたのデートメンバー

[CNB_DimSampleInfo].[COAReleasedON].&[2013-01-02T03:20:00]

は、分単位 (おそらく秒単位) まで正確であるため、ユーザー日付パラメーターの不適切な候補のように見えます。ユーザーが時刻と正確に一致しない限り、ユーザーは何も得られません。しかし、UI で LimitToList 選択リストを使用して完全一致を強制している可能性があります。

このメンバー名を取得するには、入力文字列を次のようにフォーマットします。

format([入力パラメータ],'yyyy-MM-ddThh:mm:ss')

于 2016-04-29T11:23:39.170 に答える
0

There is also StrToSet which is better in your circumstance as you're using the : operator which returns a set:

...
...
FROM 
(
  SELECT 
    StrToSet
    (
            "[CNB_DimSampleInfo].[COAReleasedON].[" + Format("2013-01-02","yyyy MM")
          + "]:[CNB_DimSampleInfo].[COAReleasedON].["
        + 
          Format
          ("2013-01-02"
           ,"yyyy MM"
          )
      + "]"
     ,CONSTRAINED
    ) ON COLUMNS
  FROM Cube001
);

does the following definitely return the date formatted the same as your key values?

Format("2013-01-02","yyyy MM")

Do your key values for dates look like this?...

[CNB_DimSampleInfo].[COAReleasedON].[2013 01]
于 2016-04-29T09:50:02.120 に答える
0

以下のようにフィルターを使用してみました

SELECT
[Measures].[Result] ON COLUMNS
,NON EMPTY
 {
  filter([CNB_DimSampleInfo].[COAReleasedON].members,instr([CNB_DimSampleInfo].[COAReleasedON].currentmember.member_caption,"2013-01-02")>0 or instr([CNB_DimSampleInfo].[COAReleasedON].currentmember.member_caption, "2013-04-01")>0)

   *[CNB_DimProduct].[ProductUcode].[ProductUcode].ALLMEMBERS*
    [CNB_DimProduct].[ProductDesc].[ProductDesc].ALLMEMBERS*
    [CNB_DimTest].[TestUcode].[TestUcode].ALLMEMBERS*
    [CNB_DimTest].[TestName].[TestName].ALLMEMBERS
} ON ROWS

FROM Cube002

于 2016-05-03T04:43:15.603 に答える