ULTILIZAR FUNCAO SUM EM INSTRUCAO SQL

LORDAUTUNM 08/08/2007 12:00:24
#229980
Bom dia! Tehno a Seguinte Instrucao:

UPDATE Movimento INNER JOIN Extrato ON Movimento.campo4=Extrato.Banco AND Movimento.Campo9 = Extrato.Periodo SET Extrato.SAL1= SUM(movimento.campo2) Where Day(Movimento.Campo1)='1' AND Movimento.campo3 = 'Credito' AND Extrato.Aberto=0

A intenção é atualiza o campo Sal1 da Tabela Extrato com a Soma do campo2 da tabela movimento seguito os parametros exigidos. Mas me retorna o seguite erro:

"Voce tentou execultar uma consulta que nao inclui a expressão 'SAL1'
especificada como parte de uma função agregada."

se eu removo a Funcao SUM ai funciona porem nao traz a soma.

Se alguem tiver alguma ideia de como fazer isso me da um toque!

USUARIO.EXCLUIDOS 08/08/2007 13:45:52
#230008

Tenta isso:

UPDATE Movimento.Campo1, Movimento.Campo3 (complete a lista), SUM(Movimento.Campo2) as Total INNER JOIN Extrato ON Movimento.campo4=Extrato.Banco AND Movimento.Campo9 = Extrato.Periodo SET Extrato.SAL1= Movimento.Total Where Day(Movimento.Campo1)='1' AND Movimento.campo3 = 'Credito' AND Extrato.Aberto=0

eu mudei a estrutura..acho q pode funcionar..tenta ae e avisa

boa sorte
USUARIO.EXCLUIDOS 08/08/2007 14:18:01
#230026
UPDATE movimento set Movimento.Campo1 = (select sum(valor) from tabela where condicao_select_interno)

where
condicao do update


LORDAUTUNM 08/08/2007 14:56:01
#230035
[txt-color=#000000]SINKERTEC[/txt-color]

Aparentemente deu Certo!
Vou fazer mais alguns Teste para conferir o Reultado.

[txt-color=#3333ff]ACG1574[/txt-color]

Do geito que vc passou ficou assim:

UPDATE Movimento SET Movimento.Campo2=(SELECT SUM(Campo2) FROM Movimento Where Day(Movimento.Campo1)='1' AND Movimento.campo3 = 'Credito') INNER JOIN Extrato ON Movimento.campo4=Extrato.Banco AND Movimento.Campo9 = Extrato.Periodo SET Extrato.SAL1= Movimento.campo2 WHERE Extrato.Aberto=0

Porem Nao deu certo, a mensagem de erro foi: "Erro de Sintax, Operador Faltando na Expressão de Consulta.
Testei no Access e Para em INNER JOIN Extrato...

Valeu Galera!

USUARIO.EXCLUIDOS 08/08/2007 15:01:39
#230036

Opa LORD

testa ae..e avisa depois

abraços e boa sorte
LORDAUTUNM 08/08/2007 15:15:27
#230038
Não Deu Certo SINKERTEC
Ta assim:

UPDATE Movimento.Campo1, Movimento.Campo3, Movimento.campo4, movimento.campo9, SUM(Movimento.Campo2) as Total INNER JOIN Extrato ON Movimento.campo4=Extrato.Banco AND Movimento.Campo9 = Extrato.Periodo SET Extrato.SAL1= Movimento.Total Where Day(Movimento.Campo1)='1' AND Movimento.campo3 = 'Credito' AND Extrato.Aberto=0

e o erro foi: "Erro de Sintaxe na Expressão UPDATE

LORDAUTUNM 08/08/2007 15:33:14
#230045
Tambem tentei assim:

UPDATE Movimento INNER JOIN Extrato ON (Movimento.campo4 = Extrato.Banco) AND (Movimento.Campo9 = Extrato.Periodo) SET Extrato.SAL1= (SELECT Sum(Campo2) FROM Movimento WHERE Day(movimento.campo1)='1' AND Movimento.campo3='Credito') WHERE Extrato.Aberto=0

O erro foi: "A operação deve usar uma consulta atualizavel"
Tópico encerrado , respostas não são mais permitidas