Update: Gibt eine Multidimensional Expressions-Abfrage, die eine FILTER-Funktion enthält, ein falsches Ergebnis in SQL Server 2005 Analysis Services zurück

SPRACHE AUSWÄHLEN SPRACHE AUSWÄHLEN
Artikel-ID: 942654 - Produkte anzeigen, auf die sich dieser Artikel bezieht
Fehler: # 50001670 (SQL-Hotfix)
Microsoft stellt Updates für Microsoft SQL Server 2005 als downloadbare Datei. Da die Updates kumulativ sind, enthält jede neue Version alle Hotfixes und alle Sicherheitsupdates, die mit früheren SQL Server 2005 enthalten waren.
Alles erweitern | Alles schließen

Auf dieser Seite

Problembeschreibung

Wenn Sie eine Abfrage (MULTIDIMENSIONAL Expressions) in Microsoft SQL Server 2005 Analysis Services ausführen, gibt die MDX-Abfrage ein falsches Ergebnis zurück. Dieses Problem tritt auf, wenn folgenden Bedingungen erfüllt sind:
  • Die MDX-Abfrage enthält eine FILTER-Funktion.
  • Die FILTER-Funktion ist in einer CROSSJOIN-Funktion geschachtelt.

Lösung

Die Fehlerbehebung für dieses Problem wurde zuerst im kumulativen Update 4 veröffentlicht. Weitere Informationen, wie Sie dieses kumulative Updatepaket für SQL Server 2005 Service Pack 2 zu erhalten finden Sie im folgenden Artikel der Microsoft Knowledge Base:
941450Kumulatives Updatepaket 4 für SQL Server 2005 Service Pack 2
Hinweis: Da die Builds kumulativ sind, enthält jede neue Update-Version alle Hotfixes und alle Sicherheitsupdates, die mit früheren SQL Server 2005 enthalten waren. Microsoft empfiehlt, dass Sie in Erwägung ziehen Anwenden der neuesten Update-Version, die diesen Hotfix enthält. Weitere Informationen finden Sie im folgenden Artikel der Microsoft Knowledge Base:
937137SQL Server 2005 erstellt, die veröffentlicht wurden, nachdem SQL Server 2005 Service Pack 2 freigegeben wurde
Microsoft SQL Server 2005-Hotfixes sind für bestimmte SQL Server Servicepacks erstellt. Sie müssen ein SQL Server 2005 Service Pack 2 Hotfix auf eine Installation von SQL Server 2005 Service Pack 2 anwenden. Standardmäßig ist jeder Hotfix, der in einer SQL Server Service Pack bereitgestellt wird in das nächste SQL Server Service Pack enthalten.

Status

Microsoft hat bestätigt, dass dies ein Problem in Microsoft-Produkten handelt, die im Abschnitt "Gilt für" aufgeführt sind.

Weitere Informationen

Beispiel

If you run the following MDX query against the AdventureWorks sample database in SQL Server 2005 Analysis Services, the query returns the correct result:
WITH MEMBER [Reseller].[Product Line].[COG_OQP_INT_sm2] AS 'SUM(   {[Reseller].[Product Line].[Product Line].MEMBERS},
    ([Reseller].[Last Order Year].[COG_OQP_INT_m5]))', SOLVE_ORDER = 6
MEMBER [Reseller].[Last Order Year].[COG_OQP_INT_sm3] AS 'SUM(    {[Reseller].[Last Order Year].[Last Order Year].MEMBERS},
    IIF(        ISEMPTY(  ([Measures].[Growth in Customer Base])),0,  1))', SOLVE_ORDER = 5
MEMBER [Reseller].[Last Order Year].[COG_OQP_INT_m5] AS 'SUM(    {[Reseller].[Last Order Year].[Last Order Year].MEMBERS},
    IIF(        ISEMPTY(  ([Measures].[Growth in Customer Base])),0, 1))', SOLVE_ORDER = 65534
MEMBER [Reseller].[Bank Name].[COG_OQP_INT_sm1] AS '1', SOLVE_ORDER = 7
SELECT
CROSSJOIN(
        UNION(
            CROSSJOIN(
                CROSSJOIN(
                    HEAD(
                        {[Reseller].[Bank Name].[COG_OQP_INT_sm1]}, 1
                     ),
                    {[Reseller].[Product Line].[COG_OQP_INT_sm2]}),
                    {[Reseller].[Last Order Year].[COG_OQP_INT_sm3]}),
            CROSSJOIN(
                {[Reseller].[Bank Name].&[International Bank]},
                CROSSJOIN(
                    {[Reseller].[Product Line].[COG_OQP_INT_sm2]},
                    {[Reseller].[Last Order Year].[COG_OQP_INT_sm3]}))),
            {[Measures].[Growth in Customer Base]})
ON AXIS(0) 
FROM [Adventure Works]
CELL PROPERTIES VALUE
The following is the correct result:
COG_OQP_INT_sm1                 International Bank
COG_OQP_INT_sm2                 COG_OQP_INT_sm2
COG_OQP_INT_sm3                 COG_OQP_INT_sm3
Growth in Customer Base         Growth in Customer Base
1                               11
However, when you run the following MDX query, the query returns an incorrect result:
WITH MEMBER [Reseller].[Product Line].[COG_OQP_INT_sm2] AS 'SUM(   {[Reseller].[Product Line].[Product Line].MEMBERS},
    ([Reseller].[Last Order Year].[COG_OQP_INT_m5]))', SOLVE_ORDER = 6
MEMBER [Reseller].[Last Order Year].[COG_OQP_INT_sm3] AS 'SUM(    {[Reseller].[Last Order Year].[Last Order Year].MEMBERS},
    IIF(        ISEMPTY(  ([Measures].[Growth in Customer Base])),0,  1))', SOLVE_ORDER = 5
MEMBER [Reseller].[Last Order Year].[COG_OQP_INT_m5] AS 'SUM(    {[Reseller].[Last Order Year].[Last Order Year].MEMBERS},
    IIF(        ISEMPTY(  ([Measures].[Growth in Customer Base])),0, 1))', SOLVE_ORDER = 65534
MEMBER [Reseller].[Bank Name].[COG_OQP_INT_sm1] AS '1', SOLVE_ORDER = 7
SELECT
CROSSJOIN(
        UNION(
            CROSSJOIN(
                CROSSJOIN(
                    HEAD(
                        {[Reseller].[Bank Name].[COG_OQP_INT_sm1]},
                        -- If you replace the following parameter with a value of 1, the query returns the correct result.
                         IIF(
                             COUNT(
                                 CROSSJOIN(
                                     FILTER(
                                         {[Reseller].[Bank Name].[Bank Name].MEMBERS},
                                         ([Measures].[Growth in Customer Base],
                                          [Reseller].[Product Line].[COG_OQP_INT_sm2],
                                          [Reseller].[Last Order Year].[COG_OQP_INT_sm3])>= 11),
                                     {[Reseller].[Product Line].[Product Line].MEMBERS}
                                 ),
                                 INCLUDEEMPTY
                             ) > 0, 1, 0
                         )
                        ----------
                     ),
                    {[Reseller].[Product Line].[COG_OQP_INT_sm2]}),
                    {[Reseller].[Last Order Year].[COG_OQP_INT_sm3]}),
            CROSSJOIN(
                {[Reseller].[Bank Name].&[International Bank]},
                CROSSJOIN(
                    {[Reseller].[Product Line].[COG_OQP_INT_sm2]},
                    {[Reseller].[Last Order Year].[COG_OQP_INT_sm3]}))),
            {[Measures].[Growth in Customer Base]})
ON AXIS(0) 
FROM [Adventure Works]
 CELL PROPERTIES VALUE
die folgenden ist das falsche Ergebnis:
COG_OQP_INT_sm1                 International Bank
COG_OQP_INT_sm2                 COG_OQP_INT_sm2
COG_OQP_INT_sm3                 COG_OQP_INT_sm3
Growth in Customer Base         Growth in Customer Base
1                               15
in MDX-Abfrage, der zweite Parameter der die HEAD-Funktion, die einen von 1 Wert, wird durch eine IIF-Funktion ersetzt. Die IIF-Funktion gibt den gleichen Wert 1 zurück. Das Ergebnis des MDX-Abfrage unterscheidet sich jedoch aus der MDX-Abfrage, die weiter oben erwähnt wird.

Weitere Informationen, welche Dateien geändert werden, sowie über alle Voraussetzungen für das kumulative Updatepaket anwenden, das den Hotfix enthält, der in diesem Knowledge Base-Artikel beschrieben wird, finden Sie die folgende KB-Artikelnummer:
941450Kumulatives Updatepaket 4 für SQL Server 2005 Service Pack 2

Informationsquellen

Weitere Informationen zur Liste der Builds, die nach SQL Server Service Pack 2 finden Sie im folgenden Artikel der Microsoft Knowledge Base:
937137SQL Server 2005 erstellt, die veröffentlicht wurden, nachdem SQL Server 2005 Service Pack 2 freigegeben wurde
Weitere Informationen zu inkrementellen Dienstmodell für SQL Server finden Sie im folgenden Artikel der Microsoft Knowledge Base:
935897Ein inkrementelles Dienstmodell steht SQL Server-Team zum Übermitteln von Hotfixes für gemeldete Probleme
Weitere Informationen, wie Sie SQL Server 2005 Service Pack 2 erhalten können finden Sie im folgenden Artikel der Microsoft Knowledge Base:
913089Beziehen der neuesten Service Packs für SQL Server 2005
Weitere Informationen zu neuen Features und die Verbesserungen in SQL Server 2005 Service Pack 2 die folgenden Microsoft-Website:
http://go.microsoft.com/fwlink/?LinkId=71711
Weitere Informationen zum Benennungsschema für SQL Server-Updates finden Sie im folgenden Artikel der Microsoft Knowledge Base:
822499Neues Namensschema für Microsoft SQL Server-Softwareupdate-Paketen
Weitere Informationen zur Terminologie für Softwareupdates finden Sie im folgenden Artikel der Microsoft Knowledge Base:
824684Erläuterung von Standardbegriffen bei Microsoft Softwareupdates

Eigenschaften

Artikel-ID: 942654 - Geändert am: Dienstag, 9. Oktober 2007 - Version: 1.1
Die Informationen in diesem Artikel beziehen sich auf:
  • Microsoft SQL Server 2005 Analysis Services
Keywords: 
kbmt kbsql2005as kbhotfixrollup kbfix kbpubtypekc kbqfe kbexpertiseadvanced KB942654 KbMtde
Maschinell übersetzter Artikel
Wichtig: Dieser Artikel wurde maschinell und nicht von einem Menschen übersetzt. Die Microsoft Knowledge Base ist sehr umfangreich und ihre Inhalte werden ständig ergänzt beziehungsweise überarbeitet. Um Ihnen dennoch alle Inhalte auf Deutsch anbieten zu können, werden viele Artikel nicht von Menschen, sondern von Übersetzungsprogrammen übersetzt, die kontinuierlich optimiert werden. Doch noch sind maschinell übersetzte Texte in der Regel nicht perfekt, insbesondere hinsichtlich Grammatik und des Einsatzes von Fremdwörtern sowie Fachbegriffen. Microsoft übernimmt keine Gewähr für die sprachliche Qualität oder die technische Richtigkeit der Übersetzungen und ist nicht für Probleme haftbar, die direkt oder indirekt durch Übersetzungsfehler oder die Verwendung der übersetzten Inhalte durch Kunden entstehen könnten.
Den englischen Originalartikel können Sie über folgenden Link abrufen: 942654
Microsoft stellt Ihnen die in der Knowledge Base angebotenen Artikel und Informationen als Service-Leistung zur Verfügung. Microsoft übernimmt keinerlei Gewährleistung dafür, dass die angebotenen Artikel und Informationen auch in Ihrer Einsatzumgebung die erwünschten Ergebnisse erzielen. Die Entscheidung darüber, ob und in welcher Form Sie die angebotenen Artikel und Informationen nutzen, liegt daher allein bei Ihnen. Mit Ausnahme der gesetzlichen Haftung für Vorsatz ist jede Haftung von Microsoft im Zusammenhang mit Ihrer Nutzung dieser Artikel oder Informationen ausgeschlossen.

Ihr Feedback an uns

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com