Jump to content


Photo

Update Com Soma De Tabelas Diferentes


  • Faça o login para participar
4 replies to this topic

#1 Emerine

Emerine

    Normal

  • Usuários
  • 79 posts
  • Sexo:Não informado

Posted 19/01/2015, 23:38

Tenho uma tabela que preciso atualizar com o resultado da soma de valores de outra tabela.

 

Em uma tabela tenho PAGAMENTOS e na outra CARTÕES. Os pagamentos são agrupamentos de vários cartões porém existem pagamentos que faltam um ou mais cartões , então preciso recalcular a soma dos cartões que existem para atualizar a tabela pagamentos.

 

Entre as tabelas existe a pk id_pagamento.

 

Lembrando que preciso eliminar os pagamentos que não possuem cartão associado.

 

Segue o select que estou executando:

 

SELECT PAGAMENTOS_CARTAO.ID_PAGAMENTO,
         SUM (PAGAMENTOS_CARTAO.VALOR_ORIGINAL) AS VALOR_ORIGINAL , 
         SUM (PAGAMENTOS_CARTAO.VALOR_TAXA) AS VALOR_TAXA , 
         SUM (PAGAMENTOS_CARTAO.VALOR_TAXA_IOF) AS VALOR_TAXA_IOF ,
         SUM (PAGAMENTOS_CARTAO.VALOR_TAXA_TRANSACAO) AS VALOR_TAXA_TRANSACAO,
         SUM (PAGAMENTOS_CARTAO.VALOR_TAXA_SOLICITACAO) AS VALOR_TAXA_SOLICITACAO
 FROM PAGAMENTOS_CARTAO , PAGAMENTOS
        WHERE PAGAMENTOS_CARTAO.ID_PAGAMENTO = PAGAMENTOS.ID_PAGAMENTO
        GROUP BY PAGAMENTOS_CARTAO.ID_PAGAMENTO

Edição feita por: Emerine, 19/01/2015, 23:40.


#2 Danilomaru

Danilomaru

    Ativo

  • Moderadores
  • 300 posts
  • Sexo:Masculino
  • Localidade:brasil

Posted 19/01/2015, 23:41

1 - não é possível utilizar funções de agrupamento em updates... então, você vai ter que utilizar uma subquery pra trazer a soma dos registros que devem ser atualizados, seguem dois exemplos.
-- exemplo 1
--------------------------------------------------
with car as
(
select id_pagamento
   ,sum (valor_original) as valor_original 
,sum (valor_taxa) as valor_taxa
,sum (valor_taxa_iof) as valor_taxa_iof
,sum (valor_taxa_transacao) as valor_taxa_transacao
,sum (valor_taxa_solicitacao) as valor_taxa_solicitacao
from pagamentos_cartao
group by id_pagamento
)
update pag
set pag.valor_original = car.valor_original
,pag.valor_taxa = car.valor_taxa
,pag.valor_taxa_iof = car.valor_taxa_iof
,pag.valor_taxa_transacao = car.valor_taxa_transacao
,pag.valor_taxa_solicitacao = car.valor_taxa_solicitacao
from pagamentos pag
join car
on car.id_pagamento = pag.id_pagamento




-- exemplo 2
--------------------------------------------------
update pag
set pag.valor_original = car.valor_original
,pag.valor_taxa = car.valor_taxa
,pag.valor_taxa_iof = car.valor_taxa_iof
,pag.valor_taxa_transacao = car.valor_taxa_transacao
,pag.valor_taxa_solicitacao = car.valor_taxa_solicitacao
from pagamentos pag
join (select id_pagamento
   ,sum (valor_original) as valor_original 
,sum (valor_taxa) as valor_taxa
,sum (valor_taxa_iof) as valor_taxa_iof
,sum (valor_taxa_transacao) as valor_taxa_transacao
,sum (valor_taxa_solicitacao) as valor_taxa_solicitacao
from pagamentos_cartao
group by id_pagamento) car


on car.id_pagamento = pag.id_pagamento


#3 RonsisM

RonsisM

    Super Veterano

  • Usuários
  • 15724 posts
  • Sexo:Masculino
  • Localidade:Plovdiv

Posted 14/09/2017, 03:45

Buy Propecia Online 20mg cheap cialis Torsemide For Sale
Foros Cialis Sin Receta Buy Cialis Through Paypal isotretinoin 10mg in germany discount store
Amoxicillin For Venereal Diseases cialis Clobetasol For Sale Mastercard Accepted Fedex Shipping Free Shipping

#4 HaroNism

HaroNism

    Super Veterano

  • Usuários
  • 15385 posts
  • Sexo:Masculino
  • Localidade:San Miguel de Tucuman

Posted 14/09/2017, 10:46

Order Generic Accutane cialis Viagra Purchase Online With Mastercad
Fluoxetine Can I Purchase Acheter Novaldex
Cialis 20 Erfahrungen <a href=http://cialtobuy.com>cialis</a> Online Amoxicilina In Canada Free Shipping Overnight Shipping

#5 HaroNism

HaroNism

    Super Veterano

  • Usuários
  • 15385 posts
  • Sexo:Masculino
  • Localidade:San Miguel de Tucuman

Posted 16/01/2023, 20:03

Lee T, Gong YD dapoxetina comprar online




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq