Query SQL

25/09/2015

0

Caros, estou com um exercício que não sei direito como resolver! Tenho estas 3 tabelas abaixo e preciso da seguinte query: "CRIAR UMA QUERY PARA LISTAR OS CLIENTES E O VALOR DA ÚLTIMA COMPRA. RETORNAR O ID_CLIENTE, CPF, NOME, VALOR_ULTIMA_COMPRA"

- CLIENTE
ID_CLIENTE
CPF
NOME
DATA_NASCIMENTO
SEXO (MASCULINO/FEMININO)
LIMITE_AUTORIZADO
LIMITE_UTILIZADO
SITUACAO_CLIENTE (B-BLOQUEADO/A-ATIVO/C-CANCELADO)

- CLIENTE_CARTAO
ID_CLIENTE
ID_CARTAO

- COMPRA
ID_COMPRA
ID_LOJA
ID_CARTAO
DATA_DA_COMPRA
VALOR_DA_COMPRA
ID_FATURA

Qual a melhor maneira para fazer?

Grato.
Renato Ranzani

Renato Ranzani

Responder

Posts

25/09/2015

Gilson Jr

Boa Tarde Renato,

Eu faria usando inner join, Faria desta forma

SELECT C.ID_CLIENTE AS 'Código Cliente', C.CPF AS 'CPF Cliente', CP.VALOR_ULTIMA_COMPRA AS 'Última Compra'
FROM CLIENTES C
INNER JOIN CLIENTE_CARTAO CC ON CLIENTE.ID_CLIENTE = CLIENTE_CARTAO.ID_CLIENTE
INNER JOIN COMPRA CP ON CLIENTE_CARTAO.ID_CARTAO = COMPRA.ID_CARTAO

Espero ter ajudado.
Responder

25/09/2015

Renato Ranzani

Boa Tarde Renato,

Eu faria usando inner join, Faria desta forma

SELECT C.ID_CLIENTE AS 'Código Cliente', C.CPF AS 'CPF Cliente', CP.VALOR_ULTIMA_COMPRA AS 'Última Compra'
FROM CLIENTES C
INNER JOIN CLIENTE_CARTAO CC ON CLIENTE.ID_CLIENTE = CLIENTE_CARTAO.ID_CLIENTE
INNER JOIN COMPRA CP ON CLIENTE_CARTAO.ID_CARTAO = COMPRA.ID_CARTAO

Espero ter ajudado.


Mas assim você não está trazendo o valor da última compra (baseado na DATA_DA_COMPRA da tabela COMPRA)!
Responder

26/09/2015

Hector Figueroa

Renato, tenta esse ai

select cl.id_cliente, cl.cpf, cl.nome, co.valor_da_compra VALOR_ULTIMA_COMPRA
from TESTE_COMPRA co  
 inner join (select cc.id_cliente, co.id_cartao, max(co.data_da_compra) dataUltimaCompra
             from TESTE_COMPRA co
              inner join TESTE_CLIENTE_CARTAO cc on cc.id_cartao = co.id_cartao
             group by cc.id_cliente, co.id_cartao) ultimaCompra on ultimaCompra.id_cartao = co.id_cartao and ultimaCompra.dataUltimaCompra = co.data_da_compra
 inner join TESTE_CLIENTE cl on cl.id_cliente = ultimaCompra.id_cliente;
Responder

Que tal ter acesso a um e-book gratuito que vai te ajudar muito nesse momento decisivo?

Ver ebook

Recomendado pra quem ainda não iniciou o estudos.

Eu quero
Ver ebook

Recomendado para quem está passando por dificuldades nessa etapa inicial

Eu quero

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar