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
Pergunta
Jackson Douglas
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
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.