Ir para conteúdo
Fórum Script Brasil
  • 0

usar o resultado de um sql para fazer update em outra tabela


cassiasf

Pergunta

Com o sql abaixo eu conto quantos registros eu tenho em tableB para cada código (code). Ao alias total é atribuído o resultado da contagem e o código ao alias code.
    SELECT
         "count" (*) as total,
         tableB."code" as code
         FROM
         tableB 
         WHERE
         tableB.code LIKE '%1'
         GROUP BY
         tableB.code
Na tabelaA eu tenho um campo chamado sequence que está em branco eu preciso atualiza-lo com o resultado do count acima + 1 fazer isso para code.
Tentei conforme abaixo e não deu certo
[Err] ERRO:  erro de sintaxe em ou próximo a "FROM"

Eu preciso usar o resultado de um sql para fazer update em outra tabela, alguém pode me ajudar?


    Update tableA
    SET tableA.sequence = (tableB.total + 1) where tableA."code" = tableB.code
    FROM
     (
     SELECT
     "count" (*) as total,
     tableB."code" as code
     FROM
     tableB 
     WHERE
     tableB.code LIKE '%1'
     GROUP BY
     tableB.code
     )

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0
update tablea
set tablea.sequence = tableb.total + 1 
from (
    select
        count(*) as total,
        code
    from tableb 
    where code like '%1'
    group by code
) tableb
where tablea.code = tableb.code
O "where" é depois do "from". "sequence" é palavra chave no Postgresql e por isso pode causar problemas como identificador. Todo subselect deve ter um alias. Editado por Kakao
Link para o comentário
Compartilhar em outros sites

  • 0

<script type='text/javascript'>window.mod_pagespeed_start = Number(new Date());</script>

update tablea
set tablea.sequence = tableb.total + 1 
from (
    select
        count(*) as total,
        code
    from tableb 
    where code like '%1'
    group by code
) tableb
where tablea.code = tableb.code
O "where" é depois do "from". "sequence" é palavra chave no Postgresql e por isso pode causar problemas como identificador. Todo subselect deve ter um alias.

Eu tentei como tu colocou mas o erro persiste.

Vou ilustrar minhas tabelas..

tableA

code sequence
100   0
200   0


table B

code sequence
100 1
100 2
100 3
100 4
......
100 17
200 1
200 2
200 3
200 4
......
200 23

Preciso atualizar na tableA para o codigo 100 com 18 e para o codigo 200 com 24.

Editado por cassiasf
Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,5k
×
×
  • Criar Novo...