Ir ao conteúdo
  • Cadastre-se
ErickSant

Outro Consulta SQL entre duas Tabelas

Recommended Posts

Bom dia Pessoal, preciso de uma ajuda por favor!

 

Eu tenho 3 tabelas, 'santander', 'extrato' e 'confirming', onde na tabela Santander há 2 campos, data e valor e nas outras duas existem data, valor e fornecedor.

O valor na tabela santander está 'cheio' e esse mesmo valor estão em 'extrato' ou em 'confirming', só que estão nessas 2 tabelas 'quebrados'.

Vejam os anexos para melhor entendimento, para achar isso na mão, eu primeiro vejo o valor e a data a ser procurado, depois vou em uma das 2 tabelas, filtro a data, vejo as datas que se repetem e somo os valores me baseando também nos fornecedores, caso o valor somado seja = o do santander, eu quero que puxe o valor e fornecedor.

 

A ideia dessa consulta é identificar os Fornecedores que possuem o mesmo valor que a tabela Santander.

 

Alguém conseguiria me ajudar ? por favor!!

WhatsApp Image 2018-03-26 at 11.35.22.jpeg

WhatsApp Image 2018-03-26 at 11.35.30.jpeg

Compartilhar este post


Link para o post
Compartilhar em outros sites

olá erick.

 

faça conforme abaixo que dará certo.

 

criei suas tabelas a título de teste conforme script abaixo. o que te importa é o select no fim desse script.

 

create temporary table santander (ddata date,nvalor double(10,2));
insert into santander values ('2018-03-19',10435.54);
insert into santander values ('2018-03-15',10410.62);
insert into santander values ('2018-03-15',9450.00);
insert into santander values ('2018-03-15',2796.67);

create temporary table fornecs (nforn int(05),cdesc varchar(60),nvalor double(10,2),ddata date);
insert into fornecs values (1,'grm serviços',950.04,'2018-03-15');
insert into fornecs values (1,'grm serviços',1846.63,'2018-03-15');
insert into fornecs values (2,'icl',1554.29,'2018-03-15');
insert into fornecs values (3,'gnre',1515.10,'2018-03-15');
insert into fornecs values (3,'gnre',410.00,'2018-03-15');
insert into fornecs values (3,'gnre',589.69,'2018-03-15');

select * from santander as s1
inner join (select nforn,cdesc,ddata,sum(nvalor) as nvalor from fornecs group by nforn,cdesc,ddata) as s2 on s1.ddata = s2.ddata and s1.nvalor = s2.nvalor;

 

estou fazendo um select na tabela santander e fazendo um inner join na tabela que chamei de fornecs (mas pode ser a sua extrato).

 

leia e entenda o que está sendo feito, após isso, é só você adicionar outro join com sua segunda tabela, no caso a confirming.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tendo as tabelas, santander cujo possui apenas valor e data e a tabela Extrato que possui fornecedor, data e valor, como ficaria o código seguindo sua lógica ?

Compartilhar este post


Link para o post
Compartilhar em outros sites
select * from santander
inner join (select fornecedor
                  ,data
                  ,sum(valor) as valor 
            from extrato group by fornecedor,data
           ) as extrato on santander.data = extrato.data and santander.valor = extrato.valor;

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×