Olá,
Quando se tem uma tabela com um cod (pessoa, por exemplo) e a tabela compras com o cod do comprador, data de compra e tipo de pagamento...
Se eu desejar criar um relatório para saber se a pessoa pagou a dinheiro mostrar "dinheiro" ou cartão "cartão" por meio de um case, porém se houver um terceiro tipo de pagamento "cheque" o cod do cliente será mostrado com o tipo de pagamento em branco.
O problema é, se eu desejar retornar uma linha por cliente, falando se ele pagou por cartão ou não. Como eu faço isso já que as linhas são diferentes e o dintinct não funciona para esse caso já que é um produto cartesiano?
grato pela atenção.
Eliminar linhas de produto cartesiano.
-
- Rank: Estagiário Sênior
- Mensagens: 13
- Registrado em: Ter, 23 Out 2012 8:43 am
Geraldo Viana Jr
Oracle SQL - PL/SQL Developer
Oracle Developer Application
Oracle SQL - PL/SQL Developer
Oracle Developer Application
E ai cara, não sei se compreendi muito bem sua pergunta, mas se entendi bem minha ideia é a seguinte:
Se o pagamento tiver sido feito através de outra forma de pagamento que seja dinheiro ou esteja vazio,
entende-se que ele não tenha utilizado cartão seja qualquer outra forma de pagamento que não seja dinheiro ou nula.
Portanto, acredito que se usar o código a baixo, você conseguirá este resultado(se é mesmo este que está buscando.
OBS: Eu ainda não testei o codigo e estou escrevendo rapidamente do meu trabalho, então, se houver algum erro verifique bem o código. e se rodar poste aqui se deu certo.
Vlw!
Se o pagamento tiver sido feito através de outra forma de pagamento que seja dinheiro ou esteja vazio,
entende-se que ele não tenha utilizado cartão seja qualquer outra forma de pagamento que não seja dinheiro ou nula.
Portanto, acredito que se usar o código a baixo, você conseguirá este resultado(se é mesmo este que está buscando.
OBS: Eu ainda não testei o codigo e estou escrevendo rapidamente do meu trabalho, então, se houver algum erro verifique bem o código. e se rodar poste aqui se deu certo.
Vlw!
SELECT p.cod, p.nome, p.sobrenome, p.cod c.data_pag, tc.ipo_pag,
DECODE(c.tipo_pag,IS NULL,'Não Usou Cartão',DECODE(c.tipo_pag,'Dinheiro','Não Usou Cartão'),'Usou cartão') AS "Tipo Pagamento"
FROM pessoas p
JOIN compras c
ON (c.cod =p.cod);
-
- Informação
-
Quem está online
Usuários navegando neste fórum: Nenhum usuário registrado e 14 visitantes