Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Lucimar.Amorim

Dados exclusivos em query

Recommended Posts

Trabalho com BD Interbase. Tenho um cadastro de clientes e um cadastro de sistemas e o relacionamentos entre as duas tabelas. Preciso trazer em uma pesquisa todos os clientes que possuem determinados sistemas selecionados pelo usuário. Caso o cliente possua mais algum sistema além dos selecionados pela pesquisa, ele não deverá ser apresentado. Alguém sabe como fazer isso em uma sql?

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites
SELECT CDCLSIST.*
FROM CDCLSIST SIST ,CDCLIENTE
WHERE CDCLSIST.sicliente <> 999
AND CDCLSIST.sicliente = CDCLIENTE.CLCODIGO
AND SIST.SICODSIS IN (1,9)
AND SIST.PTCODIGO IN (2,3)
AND SIST.PSDTCANCE IS NULL
sistema       plataforma
1 - DP        2 - windows
9 - Venda     3 - WEB
CLIENTE 1 POSSUI DP WINDOWS E VENDA WEB
CLIENTE 2 POSSUI DP WINDOWS
CLIENTE 3 POSSUI DP WINDOWS,VENDA WEB E MERCHAN WEB

o sistema traz o 1 e o 3. deveria trazer somente o 1. eu não estou sabendo como deixar essa escolha como exclusiva

Compartilhar este post


Link para o post
Compartilhar em outros sites

Faltou o relacionamento de CDCLSIST com CDCLIENTE na condição WHERE, gerou um cartesiano indevido.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Oi Motta, bom dia

 

Desculpe a demora mas estava terminando a versão do sistema. Infelizmente a solução apresentada não deu certo. Precisei criar duas consultas, uma que trouxesse todos os clientes que possuiam os sistemas e mais alguns e depois criei nova consulta eliminando os que possuiam mais do que eu precisava. Como não houve muita perda de performance, mantive isso mesmo.

Obrigada pela ajuda

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.