Dados em massa de banco de dados / PostegreSQL

PostgreSQL

10/07/2017

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)
João Oliveira

João Oliveira

Curtidas 0

Respostas

Robson Morais

Robson Morais

10/07/2017

Boa tarde,

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

Robson Morais

10/07/2017

retire o parênteses que está depois de coluna1
GOSTEI 0
Fabio Rocha

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
GOSTEI 0
João Oliveira

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
GOSTEI 0
POSTAR