Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Boa tarde a Todos,
Estou fazendo uma consulta onde preciso de informações em duas tabelas "Chamados" e "Acompanhamentos".
Preciso listar Todos os Chamados e saber quais chamados tem acompanhamentos, porém quando eu executo o Código,
Retorna Todos os Chamados(Esta correto), e se tiver algum acompanhamento ele lista novamente esse chamado
(ficando assim Duplicado). Abaixo meu código.
select Distinct(a.CodChamado), a.CliNome, a.Solicitante, a.Suporte, a.Situacao, a.Descricao, a.DataSolicitacao,a.CodCliente, b.Atualizado from Chamados as a left join AcompChamado as b on a.CodChamado = b.CodChamado where Situacao = 'A' and Tipo = 'D' and
Atualizado = 'S' order by DataSolicitacao
Me Ajuda ai Galera...
Motta Valeu pela Dica,
Mas eu já tinha tentado assim. Eu preciso Que liste todos os chamados porem não pode duplicar se existir na tabela
AcompChamado e pelo Fato de eu esta usando um "Left Join" pra saber da informação "Atualizado" ele duplica o
pedido se o AcompChamado.Atualizado = 'S'.
Se existir mais de um "acomp" vai duplicar não tem jeito.
Em todo caso publique um exemplo de como estão os dados e como quer exibí-los.
em um select simples, quais campos estao vindo com dados diferentes para um mesmo chamado?
select a.CodChamado
, a.CliNome
, a.Solicitante
, a.Suporte
, a.Situacao
, a.Descricao
, a.DataSolicitacao
,a.CodCliente
, b.Atualizado
from Chamados as a left join AcompChamado as b on a.CodChamado = b.CodChamado
where Situacao = 'A'
and Tipo = 'D'
and Atualizado = 'S'
-- order by DataSolicitacao
group by a.CodChamado
, a.CliNome
, a.Solicitante
, a.Suporte
, a.Situacao
, a.Descricao
, a.DataSolicitacao
,a.CodCliente
, b.AtualizadoOla,
Voce pode usar a clausula distinct ou usar uma subquery para trazer apenas os chamados que te acompchamado
Normal pois no caso de mais de um AcompChamado para um Chamados isto foi ocorrer.
Uma solução possível
select a.CodChamado , a.CliNome, a.Solicitante, a.Suporte, a.Situacao, a.Descricao, a.DataSolicitacao,a.CodCliente, count(b.Atualizado) acomps
from Chamados as a
left join AcompChamado as b on a.CodChamado = b.CodChamado
where Situacao = 'A'and
Tipo = 'D' and
Atualizado = 'S'
group by a.CodChamado , a.CliNome, a.Solicitante, a.Suporte, a.Situacao, a.Descricao, a.DataSolicitacao,a.CodCliente
order by DataSolicitacao