none
SSASでの半角ハイフンの取り扱い RRS feed

  • 質問

  • SSASを使用したエクセルデータ参照にて、

    DBには半角「-」で登録されているのに、エクセルに出力後全角「-」に変わってしまうのですが、

    何か設定が必要なのでしょうか?

    「ジ-プ」→「ジ-プ」


    ------

    情報が不足しているので、補足いたします。

    以下のテーブルがあり、
    ①のSQLを実行すると②のエラーが発生してしまいます。
    どうしてでしょうか。
    また、以下の文字をAnalysys Servicesで使用して、
    最終的にエクセルで呼び出し、表示させると全ハイフン「-」となってしまいます。
    なぜなのでしょうか?

    【TEST_A】
     ――――
     | MOJI |
     ――――
     | '-' |
     ――――

    【TEST_B】
     ――――
     | MOJI |
     ――――
     | '-' |
     ――――

    -----------①-----------
    SELECT MOJI,
           ASCII(MOJI) --45
      FROM TEST_A
    UNION ALL
    SELECT MOJI,
           ASCII(MOJI) --45
      FROM TEST_B
    ------------------------

    -----------②------------
    メッセージ 451、レベル 16、状態 1、行 1
    SELECT ステートメントの列 2 での照合順序の競合を解決できません。
    メッセージ 451、レベル 16、状態 1、行 1
    SELECT ステートメントの列 3 での照合順序の競合を解決できません。
    ------------------------

    【環境】SQL Server 2008 R2
            インスタンスの照合順序:Japanese_CI_AS
            データベースの照合順序:Japanese_CS_AS_KS_WS




    2011年3月28日 3:50

回答

  • 遅いレスポンスですが・・・

    SQLがエラーとなるのは、
    テーブルTEST_AのMOJIカラム と
    テーブルTEST_BのMOJIカラム
    で、照合順序が異なるからです。

    インスタンス・データベースの照合順序は、
    それぞれのデフォルト照合順序の設定であって、
    実際に照合順序が決まるのは、テーブルのカラムごとになります。

    SSASですべてが全角になるのは、照合順序によるものと考えられます。
    ディメンジョン構築のためのSQLではDISTINCTキーワードが付くので、
    データベースで、"-"と"-"が同一と見なされると、先に見つかった
    方だけが返されてきます。
    すると、ディメンジョン上ではどちらか一方だけで登録されるので、
    すべてがの出力が、統一されることになります。

    私は、この手のトラブルを避けるために、照合順序での「みなし」を
    させない Japanese_BIN2 を使用するようにしています。

     


    ---------------------------------
    Infospire Kayano
    • 回答としてマーク 山本春海 2011年4月25日 7:37
    2011年4月5日 10:55