Duvida com sql - Juntar datas de 2 tabelas diferentes

4 respostas
mateusviccari

Bom dia, o titulo ficou meio vago mas nao consegui achar um titulo melhor… o que quero fazer é montar um sql que me retorne a data da ultima venda de cada cliente… prém existem 2 tabelas de venda: CUPOMFISCAL e NOTAFISCAL
aonde em cada uma dessas 2 tabelas tem a data da venda e o codigo do cliente:
Como eu poderia fazer por sql?

4 Respostas

charleston10

Nesse caso, vc tem campos iguais a serem retornados, use UNION no seu SQL

alangaro_si

Olá, vc pode fazer o sequinte

(SELECT … FROM …) AS …
UNION
(SELECT … FROM …) AS …

O alias não e obrigatório mas eu gosto de usar, lembrando que os campos devem ser iguais.
É isso?

mateusviccari

Fiz usando o union, está quase como eu quero, porém ele traz varios registros duplicados dos nomes, eu gostaria de que fosse somente o ultimo…
Select que eu usei:

select cli.nome,cli.telefone,cup.dataCupom from cupom cup
    inner join cliente cli on cli.idCliente=cup.idCliente
union
select cli.nome,cli.telefone,nf.dataNf from notafiscal nf
    inner join cliente cli on cli.idCliente=nf.idCliente
order by 3 desc

Ele está trazendo assim, por exemplo:

Mateus - 33445566 - 12-10-2012
Mateus - 33445566 - 11-10-2012
Paula - 34567890 - 10-10-2012

lazaropj

faz um group by

select cli.nome,cli.telefone,cup.dataCupom from cupom cup  
    inner join cliente cli on cli.idCliente=cup.idCliente
    group by cli.nome,cli.telefone,cup.dataCupom
union  
select cli.nome,cli.telefone,nf.dataNf from notafiscal nf  
    inner join cliente cli on cli.idCliente=nf.idCliente
    group by cli.nome,cli.telefone,cup.dataCupom
order by 3 desc
Criado 20 de novembro de 2012
Ultima resposta 20 de nov. de 2012
Respostas 4
Participantes 4