日付ディメンションを持つ単純なキューブを構築してデプロイしました。ディメンションには、曜日などがあります。どうすればソートできますか?レポートには常に1、10、11、12、... 19、2、20、21と表示されます
設計。
DimDate(3列)
FactAppointment(1列)
Dims sort列をkeyまたはdateに設定しましたが、どちらも機能しません。
Excelまたはその他のBIツールが接続されていて、日付dimが列の場合、単純なカウントは日付が並べ替えられていない値です。
写真:列ヘッダーが正しく順序付けられていません。 1、10、11、12、...、19、2、20
Analysis Servicesは、ディメンション属性のデータ型をソース列と同じになるように設定します。それはあなたがそれを要求したとおりに正確にソートされます。あなたの日々は文字タイプとして宣言されています。したがって、数値の並べ替え(1,2,3)ではなく、文字の並べ替え(1、10、11)に従って並べ替えられます。
これが多次元モデルであるか表形式モデルであるかを指定しませんでしたが、どちらも並べ替え順序プロパティをサポートします。月名などの文字データを表示する必要があるが、月順に並べ替える必要がある場合は、MonthNameやMonthSortOrderなどの列があり、使用するツールにSortOrderサフィックスフィールドを表示しません。
多次元モデルでは、別のオプションとして、データソースビューを編集し、ソーステーブルを「日」列の整数へのキャストを含む名前付きクエリに置き換えることができます。
DayOfTheMonth
列をTINYINT
に変更します。 ExcelやSSASなどのダウンストリームサービスは、数値を数値として並べ替えます。
月の日にテキストデータ型を使用することを検討する状況が1つあります。 Dates
を含むほとんどのディメンションテーブルには、「利用不可」、「該当なし」、「不正な値」、「判読不能」などを表すいくつかの特別なレコードがあります。このようなレコードの場合、すべてのフィールドにこのラベルを付けると便利です。そのため、出荷日ごとの売上を示す売上レポートを実行したが、一部の売上がまだ出荷されていない場合、「7」または「29」ではなく「該当なし」の出荷日で表示されます。このシナリオでは、billinkcの提案の1つを使用して、デフォルトのソート順をオーバーライドする必要があります。