Ir para conteúdo

POWERED BY:

Arquivado

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

santind2

[Resolvido] Registro Duplicado

Recommended Posts

Boa tarde,

Estou fazendo um inner join entre duas tabelas para obter em uma página um histórico dos pedidos feitos.

No meu caso, todos os pedidos eram filtrados pelo número do pedido e agora tem que ser pelo numero de OP(Número de Operação). O que pude repara é que toda vez que tenho que mostrar o número de OP,

ele duplica a linha e ai fica assim:

OP      -     Nº PEDIDO
658             452
NULL            452

Ele me retorna uma seguinta linha com o valor da OP "NULL".

Nem tinha que ter esse valor e muito menos essa segunda linha.

Uma outra coisa que reparei foi no id da loja. Depois que coloquei o valor do WHERE do id da loja como por exemplo 4 ele acabou com a duplicação, porém, quando se tenta trazer todos os resultados o id da loja fica igual a 0

pelo fato desse id vir de um tipo de seleção. No caso se a pessoa colocar que quer ter todos as categorias de uma só vez ele não vai aparecer nada, pois o id vai ir 0 e isso não ta certo.

 

 

Segue o código que estou usando

Set dateformat dmy;
SELECT a.ID_OP,
		  b.ID_PEDIDO,
		  a.ID_LOJA,
		  b.ID_STATUS,
		   right('00000' + convert(varchar(10), b.ID_PEDIDO), 5) as TXT_NUMERO_PEDIDO,
		  b.TXT_USUARIO_NOME as TXT_NOME,
		  convert(varchar(10), b.DAT_PEDIDO, 103) as DATA_PEDIDO,
		  b.NUM_VALOR_TOTAL_BRT,
             convert(varchar(10), b.DAT_ENTREGA_REALIZADA, 103) as DATA_REMESSA             
FROM 
	TBP_PEDIDOS as a inner join VW_PEDIDOS as b on b.ID_PEDIDO = a.ID_PEDIDO
WHERE
	a.ID_LOJA = 4 and b.ID_STATUS in (6,8)
ORDER BY b.DAT_PEDIDO asc

 

Se alguém puder me ajudar fico grato...

 

Valeu!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pode ser um Produto Cartesiano indevido, a ligação de TBP_PEDIDOS com VW_PEDIDOS é só por ID_PEDIDO ou tem mais outra coluna ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pode ser um Produto Cartesiano indevido, a ligação de TBP_PEDIDOS com VW_PEDIDOS é só por ID_PEDIDO ou tem mais outra coluna ?

 

Somente pelo ID_PRODUTO.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu costumo fazer o join sem a declaração, já tentou ?

 

SELECT a.ID_OP,
                         b.ID_PEDIDO,
                         a.ID_LOJA,
                         b.ID_STATUS,
                          right('00000' + convert(varchar(10), b.ID_PEDIDO), 5) as TXT_NUMERO_PEDIDO,
                         b.TXT_USUARIO_NOME as TXT_NOME,
                         convert(varchar(10), b.DAT_PEDIDO, 103) as DATA_PEDIDO,
                         b.NUM_VALOR_TOTAL_BRT,
             convert(varchar(10), b.DAT_ENTREGA_REALIZADA, 103) as DATA_REMESSA             
FROM 
               TBP_PEDIDOS as a , VW_PEDIDOS as b 
WHERE           b on b.ID_PEDIDO = a.ID_PEDIDO and
               a.ID_LOJA = 4 and 
               b.ID_STATUS in (6,8)
ORDER BY b.DAT_PEDIDO asc

 

Não creio que seja isto, porém.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara, consegui resolver..

 

Na clausula WHERE eu adicionei a.ID_USUARIO = b.ID_USUARIO

e parou de repetir.

Mas eu não entendi o porque ele parou de repetir.

 

Se você tiver alguma explicação sobre isso fico grato. De toda forma MUITO OBRIGADO!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Diria que ID_USUARIO fa parte da chave, mas você afastou esta hipótese.

 

Mas vale a máxima, funcionou, deixa quieto !

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.