Como evitar registro duplicado SQL

Boa tarde galera, estou com uma duvida,
estou gerando um relatorio com junção de varias tabelas, pra ser mais especifico, no probelma que estou tendo, é que quando existe um registro de um cliente com o status da tarefa em aberto e tambem em concluido ele tras os 2 registro para o relatorio, eu necessito que quando houver esse caso traga somente o registro onde o t.status <> 3
Segue abaixo minha query

desde ja agradeço a atenção de todos

SELECT
c.codigo,
c.nome,
c.ddd1,
c.fone_a1,
c.fone_b1,
max(v.emissao) ult_compra,
max(t.data_inicial)ult_tarefa,
case when t.status is null then -1 else t.status end as status
FROM cadastros.dbo.clientes c
left join estoque.dbo.pedidoscab v on v.cliente = c.codigo
inner join estoque.dbo.pedidosdet i on v.numero = i.numero
inner join estoque.dbo.produtos p on p.codigo = i.codigo
inner join estoque.dbo.grupos g on g.codigo = p.grupo
left join cadastros.dbo.tarefas t on t.cliente = c.codigo
WHERE (v.emissao < ‘2018-01-01’ or v.emissao is null)
GROUP BY
c.codigo,
c.nome,
c.ddd1,
c.fone_a1,
c.fone_b1,
c.contato1,
t.status
ORDER BY c.codigo

E por que não colocou essa condição na query? Qual exatamente sua dúvida técnica?

De acordo com o que você disse, não são registros duplicados, e sim registros distintos!

Se quer que liste somente os registros cujo t.status <> 3, adicione a condição na sua query SQL, como o @javaflex citou na resposta acima.

1 curtida

desculpe se nao fui claro, minha duvida éo seguinte, eu nao quero que mostre o status 3 se o mesmo cliente ja existir com outro status