Alexandre,
o resultado da subquery, da forma que voc� est� fazendo, deve retornar
apenas um valor. De outra forma, acontece o erro citado.

Acho que mudando a query para a seguinte forma, deve resolver seu problema:

Update ProdutoPreco set
VlVenda = (Select  round(VlVenda *   .5,2)from ProdutoPreco PP
  Where PP.CdTabela = '1' and PP.SqTabela  = 1 and PP.CodProd =
ProdutoPreco.CodProd)
 Where ProdutoPreco.CdTabela = '1' and ProdutoPreco.SqTabela  = 1

Aqui estou supondo que a tabela tenha um c�digo de Produto CodProd.

Fl�vio B�rrios





"Alexandre" <[EMAIL PROTECTED]> on 04/12/2000 16:15:42

Please respond to [EMAIL PROTECTED]
                                                              
                                                              
                                                              
 To:      "Virtualand - VB" <[EMAIL PROTECTED]>,     
          "Virtualand - SQLWin" <[EMAIL PROTECTED]>       
                                                              
 cc:      (bcc: Flavio Barrios/Procenge)                      
                                                              
                                                              
                                                              
 Subject: [sqlwin] Clausula SQL                               
                                                              






Estou precisando de uma clausula SQL para atualizar linhas sendo que os
valores est�o na pr�pria tabela e ir�o atualizar outros registos.
Melhor , tenha uma tabela de Pre�os onde a chave indica o c�digo da tabela
de pre�os.
Preciso fazer um reajuste num desses c�digos me baseando no valor de outra
tabela , quer dizer outro c�digo de tabela.
Ex.
Tenho tabela com Cdtabela = 01 e quero atribuir 10% sobre o valor dos
registros com c�digo de tabela 02.

Alguma dica ?
Tentei usar uma sub-query com o seguinte:

Update ProdutoPreco set
VlVenda = (Select  round(VlVenda *   .5,2)from ProdutoPreco
  Where ProdutoPreco.CdTabela = '1' and ProdutoPreco.SqTabela  = 1)
 Where ProdutoPreco.CdTabela = '1' and ProdutoPreco.SqTabela  = 1

Mas retorna a mensagem
Subquery returned more than 1 value. This is not permitted when the
subquery
follows =, !=, <, <= , >, >= or when the subquery is used as an expression.
The statement has been terminated.

==============================================
Lista de Centura SQLWindows
Administrador : [EMAIL PROTECTED]
[ http://www.centuraexplorer.com ]
Para sair desta lista mande mensagem para:
[EMAIL PROTECTED] sem nada no Subject e
com o comando a seguir no corpo da msg:
"unsubscribe sqlwin" (sem as aspas)
==============================================



==============================================
Lista de Centura SQLWindows
Administrador : [EMAIL PROTECTED]
[ http://www.centuraexplorer.com ]
Para sair desta lista mande mensagem para:
[EMAIL PROTECTED] sem nada no Subject e
com o comando a seguir no corpo da msg:
"unsubscribe sqlwin" (sem as aspas)
==============================================

Responder a