Ir para conteúdo
Fórum Script Brasil
  • 0

Duvidas com SQL


Jackson Douglas

Pergunta

Ola amigos

Estou com um dilema em uma QUERY e gostaria de uma ajuda

Sequinte: Tenho 3 tabelas.

1 - Saidas de Produtos (tendo itens excluidos)

2 - DAV (tendo o numero dos documentos)

3 - Tipos de Vendas( avista, aprazo, cheque )

entaum fiz assim

CREATE TEMPORARY TABLE IF NOT EXISTS tmp1

Select nrdoc, valor FROM saidas WHERE excluidos = '1'

Select COALESCE( c.tipo_v, b.tipo_v ) AS TIPO, b.nrdoc,

v.nomvde AS CAIXA,

COALESCE( c.vrvend, COALESCE( b.vrpago, b.vrvend ) ) AS VALOR_PG,

IF( b.tipbaix = 'C', 'Can', 'Bai' ) AS tpg,

t1.nrdoc, t1.valor

FROM DAV AS b LEFT JOIN vendedor AS v ON b.codven = v.codven

LEFT JOIN tipos_ven AS c ON b.nrdoc=c.nrdoc LEFT JOIN tmp1 AS t1 ON t1.nrdoc = b.nrdoc

WHERE b.dtbaix = '2010-09-19' ORDER BY CAIXA, b.nrdoc, tipo_pago;

vejam que tenho REGISTROS DUPLICADOS em NRDOC pois tem 2 tipos de VENDA para o mesmo NRDOC, o que gostaria éra de mostrar somente 1 valor na 1o LINHA VR.TMP1 e ZERO nas demais linhas caso haja mais de um NRDOC pois a venda é uma só, pois foi excluido apenas 1 item da venda, embora haja mais de 1 tipo de venda.

tipo nrdoc vende valor tpg nrdoc.TMP1 vr.TMP1

26 0000000864253 PAULA 22,27 Bai 0000000864253 2,76

03 0000000864253 PAULA 17,85 Bai 0000000864253 2,76 <<--- não é para repetir este valor

01 0000000864256 PAULA 9,90 Bai NULL NULL

03 0000000864260 PAULA 71,87 Bai NULL NULL

03 0000000864261 PAULA 17,41 Bai NULL NULL

01 0000000864267 PAULA 85,61 Bai 0000000864267 5,75

01 0000000864271 PAULA 3,99 Bai NULL NULL

DEVERIA FICAR ASSIM

tipo nrdoc vende valor tpg nrdoc.TMP1 vr.TMP1

26 0000000864253 PAULA 22,27 Bai 0000000864253 2,76 << aparecer somente na 1a ocorrencia

03 0000000864253 PAULA 17,85 Bai NULL NULL

01 0000000864256 PAULA 9,90 Bai NULL NULL

03 0000000864260 PAULA 71,87 Bai NULL NULL

03 0000000864261 PAULA 17,41 Bai NULL NULL

01 0000000864267 PAULA 85,61 Bai 0000000864267 5,75

01 0000000864271 PAULA 3,99 Bai NULL NULL

Fico no aguardo.

Jackson Douglas

Boa Vista

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0

Para isso, utilize a cláusula DISTINCT...:

SELECT DISTINCT * FROM teste

Não dá para testar aqui pois não tenho o banco, mas utilizando o DISTINCT talvez no LEFT JOIN você consiga, porque com o DISTINCT ele irá retornar 1 linha para cada resultado (no caso de 2 resultados com os mesmo valores, irá retornar somente 1 linha)

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...