CORRECÇÃO: A instrução UPDATE CUBE MDX grava o valor restante da fórmula write-back para uma célula NULL

Traduções deste artigo Traduções deste artigo
ID do artigo: 834491 - Exibir os produtos aos quais esse artigo se aplica.
Bug #: 14194 (Plato7x)
A Microsoft distribui hotfixes do Microsoft SQL Server 2000 como um arquivo para download. Como os hotfixes são cumulativos, cada versão nova contém todos os hotfixes e todas as as correções de segurança que foram incluídos com o lançamento de hotfix anterior do SQL Server 2000.
Expandir tudo | Recolher tudo

Neste artigo

Sintomas

No SQL Server 2000, quando você usa uma fórmula de write-back ponderada em uma instrução MDX (Multidimensional Expressions) UPDATE CUBE, um pequeno restante pode ser deixada após o novo valor será alocado usando a fórmula especificada. O valor restante é inserido na tabela de write-back para a última célula que é avaliada no conjunto de write-back que especifica a instrução UPDATE CUBE. Se a última célula for NULL, a célula ainda será atualizada com o valor restante. Esse comportamento pode causar registros a ser exibido para membros da dimensão que estavam vazios anteriormente. Às vezes, o valor restante é tão lenta que a ferramenta cliente exibirá o valor como zero (0).

Por exemplo, a seguinte instrução MDX UPDATE CUBE define 1998, previsão e geral & administrativo despesas para o estado da Califórnia para um valor de r$ 750.000. O novo valor será alocado para as lojas individuais na Califórnia com base em sua contribuição para real vendas o total atual de ano bruta para Califórnia no ano anterior.

UPDATE CUBE
[Budget] SET  
( [Category].[All Category].[Forecast],  
[Account].[All Account].[Net Income].[Total Expense].[General & Administration],
[Store].[All Stores].[USA].[CA], 
[Time].[1998],
[Measures].[Amount]  ) = 750000

USE_WEIGHTED_ALLOCATION BY 
iif(
IsEmpty(( ParallelPeriod([Time].[Year], 1, [Time].Currentmember), 
[Category].[All Category].[Current Year's Actuals], [Store].Currentmember, 
[Account].[All Account].[Net Income].[Net Sales].[Gross Sales], [Measures].[Amount])),
-- Sales Value is empty for the previous year so leave the new value as NULL.
NULL, 
-- Otherwise take the Current Years Actual Gross Sales for the current store, 
--divide it by the total for all of California to get the percentage contribution 
--of this store to Gross Sales and allocate that percentage of the new 
--General & Administration value to this store.
( ParallelPeriod([Time].[Year], 1, [Time].Currentmember) ,  
[Category].[All Category].[Current Year's Actuals], [Store].Currentmember, 
[Account].[All Account].[Net Income].[Net Sales].[Gross Sales], [Measures].[Amount] )    /  
([Time].[1997], [Category].[All Category].[Current Year's Actuals], 
[Store].[All Stores].[USA].[CA], [Account].[All Account].[Net Income].[Net Sales].[Gross Sales], [Measures].[Amount] )  )

Como Alameda não tem nenhum valor para a conta de vendas bruta na categoria de valores reais do ano atual para 1997, você esperaria Alameda não têm geral & administração valor atribuído. No entanto, se você executar essa instrução UPDATE CUBE e, em seguida, executar a instrução SELECT a seguir, os resultados mostram um valor de 0,002 para Alameda:
SELECT
[Measures].Members   ON COLUMNS,
{ [Store].[All Stores].[USA].[CA],   Descendants([Store].[All Stores].[USA].[CA], [Store].[Store City])  } 
ON ROWS
FROM [Budget]
WHERE 
( [Category].[All Category].[Forecast], 
[Time].[1998] , 
[Account].[All Account].[Net Income].[Total Expense].[General & Administration] )
a tabela a seguir exibe os resultados esperados:
Recolher esta tabelaExpandir esta tabela
Quantidade
CA750000
Alameda
Beverly Hills215575.4595
São Paulo257017.7488
Em San Diego256479.9204
San Francisco20926.8713
A tabela a seguir exibe os resultados reais:
Recolher esta tabelaExpandir esta tabela
Quantidade
CA750000
Alameda0,002
Beverly Hills215575.4575
São Paulo257017.7488
Em San Diego256479.9204
San Francisco20926.8713
Depois de aplicar esta correção, o valor restante serão ser aplicado a uma das células no conjunto de write-back.

Resolução

Informações sobre o service pack

Para resolver esse problema, obtenha o service pack mais recente para o Microsoft SQL Server 2000. Para obter mais informações, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
290211Como obter o SQL Server 2000 service pack mais recente

Informações sobre o hotfix

A versão em inglês deste hotfix apresenta os atributos de arquivo (ou posteriores) listados na tabela a seguir. As datas e horas desses arquivos são listadas na acordo hora universal coordenada (UTC). Quando você exibe as informações do arquivo, ele é convertido para a hora local. Para encontrar a diferença entre o UTC e a hora local, use a guia fuso horário na ferramenta Data e hora no painel de controle.
   Date         Time   Version    Size       File name
   -------------------------------------------------------
   16-Jul-2004  01:51  8.0.960.0    221,760  Msmdcb80.dll
   16-Jul-2004  02:17  8.0.0.960  4,063,808  Msmddo80.dll
   16-Jul-2004  01:45  8.0.960.0  1,036,864  Msmdgd80.dll
   16-Jul-2004  01:39  8.0.960.0    172,608  Msmdpump.dll
   16-Jul-2004  02:27  8.0.0.960  9,642,564  Msmdsgn80.dll
   16-Jul-2004  01:40  8.0.960.0  1,839,684  Msmdsrv.exe
   16-Jul-2004  02:03  8.0.960.0  2,085,456  Msolap80.dll
   16-Jul-2004  01:17  8.0.960.0    446,524  Msmdsgn.rll
   16-Jul-2004  00:58  8.0.960.0    213,068  Msolap80.rll

Observação Devido às dependências do arquivo, o hotfix mais recente ou o recurso que contém esses arquivos também pode conter arquivos adicionais.

SQL Server 2000 Analysis Services 64-bit

Para obter informações adicionais sobre criação de um hotfix que foi projetado para ser aplicado em um servidor que está executando o SQL Server 2000 Analysis Services 64 bits, ou para determinar se um hotfix está programado para ser incluído no SQL Server 2000 Analysis Services 64-bit Service Pack 4, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
831653Disponibilidade de compilação de hotfix do Analysis Services 2000 64 bits

Situação

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

Esse problema foi corrigido primeiro no Microsoft SQL Server 2000 Service Pack 4.

Mais Informações

Para obter informações adicionais, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
824684Descrição da terminologia padrão que é usada para descrever as atualizações de software

Propriedades

ID do artigo: 834491 - Última revisão: terça-feira, 21 de novembro de 2006 - Revisão: 2.3
A informação contida neste artigo aplica-se a:
  • Microsoft SQL Server 2000 Analysis Services
Palavras-chave: 
kbmt kbhotfixserver kbqfe kbqfe kbsqlserv2000presp4fix kbfix kbbug KB834491 KbMtpt
Traduçã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 traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 834491

Submeter comentários

 

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