Dados em massa de banco de dados / PostegreSQL
Olá pessoal, boa tarde, sou novo no site e no banco de dados, porém, trabalho em uma empresa que me pediu que fizesse uma query da seguinte maneira: preciso buscar no banco de dados todas as compras que esses clientes tem, o meio de busca é pelo CPF/CNPJ, só que o cpf/cnpj no banco de dados esta declarado como
character varying(24), nos testes que realizei, por mais que eu coloque cerca de 500 números de cpf para localizar os dados, o sistema me traz apenas 1 linha referenciando 1 numero de cpf com os dados solicitados, Sei que é um select simples, porém, nós estou obtendo êxito, segue código abaixo.
Ressaltando que dessa forma que esta se coloco 1 ou mais cpf's sempre retorna uma linha com os dados pedidos.
Alguém tem uma solução?? Fico muito grato pela atenção
select *
from Tabela1
where coluna in (
select coluna1
from
tabela1
where cpfcnpj = ' "Aqui vai 1 ou mais cpf's" ' order by coluna1)
character varying(24), nos testes que realizei, por mais que eu coloque cerca de 500 números de cpf para localizar os dados, o sistema me traz apenas 1 linha referenciando 1 numero de cpf com os dados solicitados, Sei que é um select simples, porém, nós estou obtendo êxito, segue código abaixo.
Ressaltando que dessa forma que esta se coloco 1 ou mais cpf's sempre retorna uma linha com os dados pedidos.
Alguém tem uma solução?? Fico muito grato pela atenção
select *
from Tabela1
where coluna in (
select coluna1
from
tabela1
where cpfcnpj = ' "Aqui vai 1 ou mais cpf's" ' order by coluna1)
João Oliveira
Curtidas 0
Respostas
Robson Morais
10/07/2017
Boa tarde,
na clausula
você está colocando igual há um cpf, o correto é utilizar in....
na clausula
where cpfcnpj = .....
você está colocando igual há um cpf, o correto é utilizar in....
select * from Tabela1 where cpfcnpj in ('12345678902','12345678901','12345678903') order by coluna1)
GOSTEI 0
Robson Morais
10/07/2017
retire o parênteses que está depois de coluna1
GOSTEI 0
Fabio Rocha
10/07/2017
Olá,
Conforme Robinho falou e escreveu muito bem para uma consulta com multiplas informações podemos utilizar a clausula IN.
De uma olhada nos links abaixo para ver se te ajuda.
SQL
MYSQL
Grande abraço
Conforme Robinho falou e escreveu muito bem para uma consulta com multiplas informações podemos utilizar a clausula IN.
De uma olhada nos links abaixo para ver se te ajuda.
SQL
MYSQL
Grande abraço
GOSTEI 0
João Oliveira
10/07/2017
Bom dia pessoal, Muito obrigado pela ajuda de todos,
Nesse caso abaixo deu certo, me trouxe todos os cpf's com dados, porém, preciso que me traga ainda as 3 ultimas compras de cada cpf, como dito, sempre em massa, serão muitos cpf's pra essa busca, tentei colocar "order by numero_da_compra limit 3" mas apresenta erro de sintaxe, ja tentei algumas mudanças mas sem sucesso, qual seria a solução nesse caso?
Grato pela atenção de todos!
select
numero_da_compra,
data_compra
from tabela 1
where coluna1 in ('123.456.789-98','987.654.321-21','369.258.147-87','147.258.369-12','258.357.159-56')
group by
numero_da_compra,
data_compra
Nesse caso abaixo deu certo, me trouxe todos os cpf's com dados, porém, preciso que me traga ainda as 3 ultimas compras de cada cpf, como dito, sempre em massa, serão muitos cpf's pra essa busca, tentei colocar "order by numero_da_compra limit 3" mas apresenta erro de sintaxe, ja tentei algumas mudanças mas sem sucesso, qual seria a solução nesse caso?
Grato pela atenção de todos!
select
numero_da_compra,
data_compra
from tabela 1
where coluna1 in ('123.456.789-98','987.654.321-21','369.258.147-87','147.258.369-12','258.357.159-56')
group by
numero_da_compra,
data_compra
GOSTEI 0