文章編號: 950598 - 上次校閱: 2008年4月16日 - 版次: 1.1

SQL Server 2005 分析服務中的 [語言] 儲存格內容的描述

系統提示本文適用於您使用的作業系統之外的作業系統。與您不相關的文章內容已停用。

在此頁中

全部展開 | 全部摺疊

結論

Microsoft SQL Server 2005 分析服務介紹語言儲存格屬性之外,VALUE 儲存格屬性和 FORMAT_STRING 儲存格屬性。在 [SQL Server 2005 分析服務 FORMATTED_VALUE 儲存格屬性建置在下列的資料格屬性:
  • FORMAT_STRING
  • 語言
您想要顯示貨幣符號的量值和量值的格式字串定義為貨幣時,語言儲存格屬性是非常有用。

其他相關資訊

SQL Server 2005 分析服務如何判斷物件的 [語言] 儲存格屬性

您可以明確地指定語言的儲存格屬性,例如維度或 Cube 的物件上。如果您不在物件上指定語言的儲存格屬性,語言儲存格屬性是從該物件的父系繼承而來。

如果您未指定語言的儲存格屬性對 Cube,Cube 的 [語言] 儲存格屬性被繼承自包含 Cube 的資料庫。如果您不在資料庫上指定語言的儲存格屬性,語言儲存格屬性是從伺服器物件繼承而來。

例如,您必須位於 SQL Server 2005 分析服務的英文 (美國) 版本的 Cube。預設情況下,Cube 的 [語言] 儲存格屬性的值會是 1033年。當您執行多維度運算式 (MDX) 查詢,但您不指定語言的儲存格屬性 MDX 查詢會使用 Cube 執行 MDX 查詢的 [語言] 儲存格的屬性。

不過,當您執行 < 範例 1 > MDX 查詢對 Adventure 運作] Cube 的 AdventureWorks 分析服務專案企業版範例專案,查詢輸出會顯示為中文 Yuan 符號。 這是因為語言儲存格屬性明確地指定要 2052年。 2052 為 中文-中國 的地區設定的地區設定識別碼 (LCID)。

範例 1
with member measures.A 
as [Measures].[Reseller Gross Profit], language=2052
member measures.B as measures.A
select {measures.A, measures.B } on 0
from [Adventure Works]
cell properties value, format_string, language, formatted_value
附註範例專案併入分析服務資料庫專案 AdventureWorks 分析服務專案企業版。如果要下載分析服務資料庫專案,請造訪下列 Microsoft 網站:
http://www.codeplex.com/MSFTDBProdSamples/Release/ProjectReleases.aspx?ReleaseId=4004 (http://www.codeplex.com/MSFTDBProdSamples/Release/ProjectReleases.aspx?ReleaseId=4004)

如何使用 MDX 指令碼來控制語言儲存格屬性

您可以在 Cube 中使用 MDX 指令碼,來控制語言儲存格屬性。比方說,您可以使用類似 「 範例 2 」 MDX 指令碼的 MDX 指令碼。

範例 2
Scope([Reporting Currency].[Destination Currency Code].[Destination Currency Code].Members);
    language(this) = [Reporting Currency].[Currency LCID].membervalue;  
End Scope;
此外,您可以使用範例 3 」 的貨幣轉換 MDX 指令碼將量值值從美國元轉換成另一個貨幣。

範例 3
 Scope ({ Measures.[Sales Price] });     
     Scope( Leaves([Time]), [Reporting Currency].[USD], Leaves([Destination Currency]));     
        Scope({ Measures.[Sales Price]});     
         This = [Reporting Currency].[USD] * Measures.[Exchange Rate];
         Non_Empty_Behavior(This) = Measures.[Sales Price];
        End Scope;    
     End Scope;      
     Scope( Leaves([Time]) , Except([Reporting Currency].[Destination Currency Code].[Destination Currency Code].Members, 
                {[Reporting Currency].[Destination Currency Code].[Destination Currency Code].[USD]}));     
         Scope( { Measures.[Sales Price]});    
         This = [Reporting Currency].[Destination Currency Code].[USD] /(Measures.[Exchange Rate], LinkMember([Reporting Currency].[Destination Currency Code].CurrentMember, [Destination Currency].[Destination Currency Code]));   
     Non_Empty_Behavior(This) = Measures.[Sales Price];
    End Scope;      
  End Scope; 
End Scope;
({量值。 [銷售價格]})範例 3 」 MDX 指令碼會建立一個報表貨幣 」 維度。您可以使用這個 MDX 指令碼來控制的儲存格的 [語言] 儲存格屬性和貨幣轉換的查詢內容為基礎的儲存格。您使用在 「 範例 4 」,例如 MDX 查詢:

範例 4
SELECT  
    [Geography].[Continent].&[EUROPE] ON 0,
    [Measures].[Sales Price] ON 1
FROM 
    [MyCube] 
cell properties value, format_string, language, formatted_value
範例 4 」 MDX 查詢會產生代表歐洲的彙總銷售價格的儲存格。因為您沒有這個 MDX 查詢中指定語言的儲存格屬性,語言儲存格屬性繼承自預設成員的報告貨幣維度。如果報表貨幣維度的預設語言的儲存格屬性的值為 1033年,數值輸出]、 [語言] 儲存格屬性] 和 [貨幣符號代表美元。1033 是 英文-美國 地區設定的 LCID,就會發生這個問題。

此外,您可以更新範例 4 」 MDX 查詢,以英鎊 (GBP) 中顯示輸出。若要執行此動作套用 [的報告貨幣相關的成員上的 [切片維度。比方說,您使用下列的範例 5 」 MDX 查詢。

範例 5
SELECT
    [Geography].[Continent].&[EUROPE] ON 0,
    [Measures].[Sales Price] ON 1
FROM [MyCube] 
WHERE 
    ( [Reporting Currency].[Destination Currency Code].[GBP] )
cell properties value, format_string, language, formatted_value
如果您按兩下儲存格,則會傳回,語言儲存格屬性的值會顯示為 2057年。2057 是 英文-英國 地區設定的 LCID。若要在特定的貨幣中顯示輸出,您必須指定報表貨幣維度 SELECT 子句中] 或 [強制 MDX 指令碼,才會生效 Cube 的 WHERE 子句中。

如何在特定的貨幣中顯示之導出成員的輸出

如果想在特定的貨幣中顯示之導出成員的輸出必須明確地指定語言的儲存格屬性。導出成員的 [語言] 儲存格屬性不被繼承自查詢內容。 如果您重寫範例 5 」 MDX 查詢,以類似下列的範例,您可以取得不同的結果。

範例 6
WITH MEMBER [Geography].[Continent].Calc AS 
    '(
        [Geography].[Continent].&[EUROPE] , 
        [Reporting Currency].[Destination Currency Code].[GBP]
        ) ' 
SELECT 
    [Geography].[Continent].Calc ON 0,
    [Measures].[Sales Price] ON 1
 FROM     [MyCube] 
cell properties value, format_string, language, formatted_value
範例 6 」 MDX 查詢會傳回儲存格範例 5 」 MDX 查詢會傳回儲存格與具有相同的數字值。 不過,儲存格會顯示與美國錢幣符號 ($) 一起。 如果您按兩下儲存格時,您注意到的語言儲存格屬性值是 1033,即使預期 2057年。

您未指定語言的儲存格屬性定義中的導出成員,就會發生這個問題。因此,語言儲存格屬性繼承自報表貨幣維度的預設語言儲存格的屬性。預設語言的儲存格屬性,報告貨幣維度的此外,是美國 美金。

如果範例 3 」 MDX 指令碼不存在,SQL Server 2005 分析服務會判斷基礎上下列物件的順序傳回儲存格的 [語言] 儲存格的屬性:
  • Cube 的預設語言
  • 資料庫預設的語言
  • SQL Server 2005 分析服務的語言
  • 系統地區設定

所要考慮當您嘗試指定語言的導出成員

SQL Server 2005 分析服務可以決定導出成員的實際數值的貨幣轉換從查詢內容。不過,SQL Server 2005 分析服務無法判斷語言儲存格屬性或貨幣符號值之導出成員從查詢內容。

如果您想要取得非預設貨幣符號,您就必須指定語言的儲存格屬性。如果未指定語言的儲存格屬性的儲存格的值數字的值,然後貨幣符號的儲存格的值可能不相符。

這篇文章中的資訊適用於:
  • Microsoft SQL Server 2005 Analysis Services
關鍵字:?
kbmt kbsql2005bi kbsql2005as kbexpertiseadvanced kbhowto kbinfo KB950598 KbMtzh
機器翻譯機器翻譯
重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,而非使用人工翻譯而成。Microsoft 同時提供使用者人工翻譯及機器翻譯兩個版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,機器翻譯的文章可能不盡完美。這些文章中也可能出現拼字、語意或文法上的錯誤,就像外國人在使用本國語言時可能發生的錯誤。Microsoft 不為內容的翻譯錯誤或客戶對該內容的使用所產生的任何錯誤或損害負責。Microsoft也同時將不斷地就機器翻譯軟體進行更新。
按一下這裡查看此文章的英文版本:950598? (http://support.microsoft.com/kb/950598/en-us/ )
Microsoft及(或)其供應商不就任何在本伺服器上發表的文字資料及其相關圖表資訊的恰當性作任何承諾。所有文字資料及其相關圖表均以「現狀」供應,不負任何擔保責任。Microsoft及(或)其供應商謹此聲明,不負任何對與此資訊有關之擔保責任,包括關於適售性、適用於某一特定用途、權利或不侵權的明示或默示擔保責任。Microsoft及(或)其供應商無論如何不對因或與使用本伺服器上資訊或與資訊的實行有關而引起的契約、過失或其他侵權行為之訴訟中的特別的、間接的、衍生性的損害或任何因使用而喪失所導致的之損害、資料或利潤負任何責任。