locked
update com select no access RRS feed

  • Pergunta

  • Como que faço para funcionar esse update?


    update  MC_matriz set MC_Matriz.MediaComp_Matriz =  (Select  (avg(MediaNotas.Nota_RespAval)/avg(MediaNotas.Grau_CompFuncao)*100.0)
    From MC_Matriz  Inner Join 
              MediaNotas  On MediaNotas.Cod_GrupoFuncao = MC_Matriz.Cod_GrupoFuncao and
                                     MediaNotas.Cod_Comp = MC_Matriz.Cod_Comp and
                                     MediaNotas.Ano_Exercicio = MC_Matriz.Ano_Exercicio
    Where MediaNotas.Ano_Exercicio = '2008'
    Group By MediaNotas.Cod_GrupoFuncao, MediaNotas.Cod_Comp)
    quinta-feira, 16 de outubro de 2008 12:30

Todas as Respostas

  • Bom Dia,

     

    Por que ele não está "funcionando" ? Não faz o que você gostaria ? Há alguma mensagem de erro ?

     

    [ ]s,

     

    Gustavo

    quinta-feira, 16 de outubro de 2008 13:38
  • ele mostra a mensagem "A operação deve usar uma consulta atualizável"
    quinta-feira, 16 de outubro de 2008 13:58
  • Alguem ai tem alguma ideia ou ja teve esse problema no access,
    no mysql roda tranquilo mais a aplicação esta no access e nao aceita esse update
    sexta-feira, 17 de outubro de 2008 14:23
  • Vc criou um relacionamento das tabelas envolvidas ?

     

    domingo, 19 de outubro de 2008 00:59
  • Esse erro é uma dor de cabeça só...

    Também procuro uma solução... algo similiar para:

     

    UPDATE CONTAS SET SALDO=(SELECT SUM(VALOR) AS SALDO FROM LANCAMENTOS WHERE LANCAMENTOS.CODIGOCONTA=SALDO.CODIGOCONTA)

     

    Isso não funciona no ACCESS... no SQL server e no Oracle sem problemas...

     

    Então qual o caminho para se obter o mesmo resultado no Access???

     

    Todo update que seja para alterar um campo com o resultado de um select dá erro...

     

    sexta-feira, 14 de novembro de 2008 09:32
  • Oi Alexandre,

     

    você terá dificuldade para atualizar a partir de um JOIN com consulta agrupada em quase todos os bancos de dados.

     

    A solução é simples: use uma tabela temporária (que você pode criar com uma consulta de criação de tabela, ou com um DELETE seguido de INSERT INTO) para carregar os registros da query de agrupamento (ou seja, da SELECT AVG). Depois faça o UPDATE usando o JOIN com esta tabela temporária.

     

    quarta-feira, 19 de novembro de 2008 02:04
    Moderador