DetailPage-MSS-KB

Base de Dados de Conhecimento

Artigo: 942654 - Última revisão: terça-feira, 9 de Outubro de 2007 - Revisão: 1.1

 
Erro: # 50001670 (correcção SQL)
A Microsoft distribui correcções Microsoft SQL Server 2005 como um ficheiro transferível. Uma vez que as correcções são cumulativas, cada nova versão contém todas as correcções e todas as correcções de segurança incluídas com o SQL Server 2005 anterior corrigir lançamento.

Nesta página

Sintomas

Quando executa uma consulta de MDX (Multidimensional Expressions) no Microsoft SQL Server 2005 Analysis Services, a consulta MDX devolve um resultado incorrecto. Este problema ocorre caso se verifiquem as seguintes condições:
  • A consulta MDX contém uma função de filtro.
  • A função de filtro estiver aninhada numa função CROSSJOIN.

Resolução

A correcção para este problema foi disponibilizada pela primeira vez na actualização cumulativa 4. Para obter mais informações sobre como obter este pacote de actualização cumulativa para o SQL Server 2005 Service Pack 2, clique no número de artigo que se segue para visualizar o artigo na Microsoft Knowledge Base:
941450  (http://support.microsoft.com/kb/941450/LN/ ) Pacote de actualização cumulativa 4 para o SQL Server 2005 Service Pack 2
Nota Uma vez que as compilações são cumulativas, cada nova versão de correcção contém todas as correcções e todas as correcções de segurança incluídas com o SQL Server 2005 anterior corrigir lançamento. A Microsoft recomenda que considerar a aplicação a versão de correcção mais recente que contenha esta correcção. Para obter mais informações, clique no número de artigo que se segue para visualizar o artigo na Microsoft Knowledge Base:
937137  (http://support.microsoft.com/kb/937137/LN/ ) Cria o SQL Server 2005 que foram disponibilizadas após o lançamento do SQL Server 2005 Service Pack 2
As correcções Microsoft SQL Server 2005 são criadas para service packs do SQL Server específicos. Tem de aplicar uma correcção do SQL Server 2005 Service Pack 2 para uma instalação do SQL Server 2005 Service Pack 2. Por predefinição, qualquer correcção fornecida num service pack do SQL Server está incluída no próximo service pack do SQL Server.

Ponto Da Situação

A Microsoft confirmou que este é um problema nos produtos da Microsoft listados na secção "Aplica-se a".

Mais Informação

Exemplo

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
segue-se o resultado incorrecto:
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 esta consulta MDX, o segundo parâmetro da função HEAD, que tem um valor de 1, é substituído por uma função IIF. A função IIF devolve o mesmo valor, 1. No entanto, o resultado da consulta de MDX difere da consulta MDX que é mencionada anteriormente.

Para obter mais informações sobre os ficheiros que são alterados e para obter informações sobre quaisquer pré-requisitos para aplicar o pacote de actualização cumulativa que contém a correcção que é descrita neste artigo da base de dados de conhecimento da Microsoft, clique no número de artigo que se segue para visualizar o artigo na Microsoft Knowledge Base:
941450  (http://support.microsoft.com/kb/941450/LN/ ) Pacote de actualização cumulativa 4 para o SQL Server 2005 Service Pack 2

Referências

Para obter mais informações sobre a lista de compilações disponíveis depois de SQL Server Service Pack 2, clique no número de artigo que se segue para visualizar o artigo na Microsoft Knowledge Base:
937137  (http://support.microsoft.com/kb/937137/LN/ ) Cria o SQL Server 2005 que foram disponibilizadas após o lançamento do SQL Server 2005 Service Pack 2
Para obter mais informações sobre o modelo de assistência incremental para o SQL Server, clique no número de artigo que se segue para visualizar o artigo na Microsoft Knowledge Base:
935897  (http://support.microsoft.com/kb/935897/LN/ ) Um modelo de assistência incremental está disponível a equipa do SQL Server para proporcionar correcções para problemas comunicados
Para obter mais informações sobre como obter o SQL Server 2005 Service Pack 2, clique no número de artigo que se segue para visualizar o artigo na Microsoft Knowledge Base:
913089  (http://support.microsoft.com/kb/913089/LN/ ) Como obter o service pack mais recente para o SQL Server 2005
Para mais informações sobre as novas funcionalidades e melhorias no SQL Server 2005 Service Pack 2, visite o seguinte Web site da Microsoft:
http://go.microsoft.com/fwlink/?LinkId=71711 (http://go.microsoft.com/fwlink/?LinkId=71711)
Para obter mais informações sobre o esquema de atribuição de nomes para as actualizações do SQL Server, clique no número de artigo que se segue para visualizar o artigo na Microsoft Knowledge Base:
822499  (http://support.microsoft.com/kb/822499/LN/ ) Novo esquema de atribuição de nomes de ficheiros para pacotes de actualização de software do Microsoft SQL Server
Para obter mais informações sobre a terminologia de actualização de software, clique no número de artigo que se segue para visualizar o artigo na Microsoft Knowledge Base:
824684  (http://support.microsoft.com/kb/824684/LN/ ) Descrição da terminologia padrão utilizada para descrever actualizações de software da Microsoft

A informação contida neste artigo aplica-se a:
  • Microsoft SQL Server 2005 Analysis Services
Palavras-chave: 
kbmt kbsql2005as kbhotfixrollup kbfix kbpubtypekc kbqfe kbexpertiseadvanced KB942654 KbMtpt
Tradução automáticaTradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine translation ou MT), não tendo sido portanto revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática… erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 942654  (http://support.microsoft.com/kb/942654/en-us/ )
Partilhar
Opções de suporte adicionais
Fóruns de Suporte da Comunidade Microsoft
Contacte-nos directamente
Encontre um parceiro certificado Microsoft
Loja Microsoft