Ir para conteúdo

Arquivado

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

asp.net

Problema para eliminar os registros iguais

Recommended Posts

Tenho o comando abaixo.

 

Select Distinct(Right(fechamento.codigo,10)) as chamado, chamados.unidade as agencia, Left(fechamento.dtfechamento,10) as dtfechamento, (servicos.valor) as valorservico, Convert(int,fechamento.valortotal) as total

from fechamento

INNER JOIN chamados ON fechamento.codigo = chamados.codigo

INNER JOIN servicos ON chamados.codigo = servicos.codigo

where fechamento.dtconferencia is not NULL and fechamento.dtconferencia <> " " and fechamento.valortotal <> "0" and servicos.valor <> "0"

order by agencia

COMPUTE SUM(Convert(int,fechamento.valortotal)) by agencia

 

Onde se pode perceber que o comando Distint está sendo usado, mas vejam o que tenho recebido de resposta do comando.

 

====================================================

====================================================

====================================================

 

006603380 0037 04/03/2004 00000000001280 1680

006825740 0037 23/03/2004 00000000000100 1280

006825740 0037 23/03/2004 00000000001280 1280

006885190 0037 26/03/2004 00000000000100 1400

006885190 0037 26/03/2004 00000000001200 1400

006886341 0037 26/03/2004 00000000001200 6900

006886341 0037 26/03/2004 00000000001280 6900

006886341 0037 26/03/2004 00000000002500 6900

 

sum

==========

27740

 

Percebe-se que estão sendo trazido campos repetidos o que ocasiona um erro de relatório, portanto quero uma ajuda para solucionar este problema.

 

Atenciosamente

Guilherme Carvalho

Compartilhar este post


Link para o post
Compartilhar em outros sites

eh.. a ideia do kra ai de cima eh boa..kso você precise desta data...faça um subselect..vai perder um pouco de perform.. mas vai funcionar beleza...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Galera eu resolvi com este Procedure ai de baixo, mas ainda quero um coisinha, fazer tipo um if dentro do procedimento para saber se foi ou não passado parametro para a procedure. Se o usuário enviar um aparametro para consultar por data o SQL deve rodar com o fechamento.dtconferencia = parametro, caso naum seja passado nenhum parametro ai sim ele executaria da maneira que estsa ai em baixo.CREATE PROCEDURE relatorio AS Select chamados.unidade as agencia, fechamento.codigo as codigo, fechamento.dtconferencia as data_conferencia, fechamento.dtfatura as data_fatura, Sum(Convert(numeric(10,2),fechamento.valortotal)/100) as valor_total, fechamento.deslocamento as delocamento, fechamento.quantidade as quantidadefrom fechamento inner join chamados on fechamento.codigo = chamados.codigoInner join agencias on agencias.codigo = chamados.unidadewhere (fechamento.valortotal is not null) and (fechamento.valortotal <>" ") and (fechamento.codigo is not null) and (fechamento.dtconferencia is not null) and (fechamento.dtconferencia =GetDate())group by chamados.unidade, fechamento.codigo, fechamento.dtconferencia, fechamento.dtfatura, fechamento.deslocamento, fechamento.quantidadeorder by chamados.unidadeComo faço o que quero agora?

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.