Ir para conteúdo

POWERED BY:

Arquivado

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

thalesoli

Não consigo obter o resultado no SQL

Recommended Posts

Boa tarde galera

 

Eu tenho uma aplicacao na qual toma conta de uma revenda de joias no estilo consignação.. quando a vendedora vem e retira uma peça, a mesma é registrar, e quando ela vende ou devolver é feito o registro dos mesmo.

 

Tenho q monta um SQL no qual junte as informações, produtos retirados, devolvidos e vendidos, para dar que no relatório só seja impresso os itens q na expressão seja maior q 0(zero) ProdutoRetirado - ProdutoDevolvido - ProdutoVendido > 0.

 

O problema é que sempre retorna vazio no SQL q eu montei. Ele consiste em 3 sql, 2 externos e um principal. Abaixo segue os 3

 

SQL PrincipalSelect R.Codigo, R.Data, R.Vendedor, V.Nome, V.Telefone,        Ri.Codigo CodigoItem, Ri.Produto, P.Descricao, Ri.Quantidade, Ri.Preco,       S.Descricao SetorFrom Retirada R left outer join Vendedor V on (R.Vendedor = V.Codigo)      left join RetiradaItem Ri on (Ri.Retirada = R.Codigo)      left outer join Produto P on (Ri.Produto = P.Codigo)     left outer join Setor S on (P.Setor = S.Codigo)     left outer join 'DevolucaoItem.sql' D on (Ri.Codigo = D.RetiradaItem)     left outer join 'VendaItem.sql' Vi on (Ri.Codigo = Vi.RetiradaItem)where (Ri.Quantidade - D.Qtde - Vi.Qtde > 0)Order By V.Nome, R.Data, P.Descricao, S.Descricao

SQL DevolucaoItem.sqlSelect D.Devolucao, Ri.Produto Barra, D.RetiradaItem, Ri.Retirada, Sum(D.Quantidade) QtdeFrom DevolucaoItem D left outer join RetiradaItem Ri on (D.RetiradaItem = Ri.Codigo)Group By D.Devolucao, Ri.Produto, D.RetiradaItem, Ri.Retirada

SQL VendaItem.sqlSelect V.Venda, Ri.Produto Barra, V.RetiradaItem, Ri.Retirada, V.Preco, V.DescontoEmpresa, V.DescontoAVista, V.Comissao, Sum(V.Quantidade) QtdeFrom VendaItem V left outer join RetiradaItem Ri on (V.RetiradaItem = Ri.Codigo)Group By V.Venda, Ri.Produto, V.RetiradaItem, Ri.Retirada, V.Preco, V.DescontoEmpresa, V.DescontoAVista, V.Comissao

No teste q estou desenvolvendo .. existe 3 itens retirados q foram devolvidos ou vendidos por inteiro e 1 q nao.

 

mas retorna somente vazio...

 

Alguem sabe me ajudar nessa?

 

 

desde já agradeço

 

Valeu

:unsure:

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom dia pessoalfazendo uma análise descobri que sai vazio pela razão de que em alguns casos o resultado da quantidade da devolucao (D.Qtde) ou quantidade vendida (Vi.qtde) podem ser nulas, e quando é nula da erro !!!esqueci de dizer q estou usando paradox neste sistema.. se fosse em FB eu usava o NUlliff :( fazer o qalguem tem alguma sugestão? :wacko:

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cheguei a uma conclusão

 

coloque duas condições para checar se é null e se for, passa o resultado:

 

where (D.Qtde is null) or (Vi.Qtde is null) or (Ri.Quantidade - D.Qtde - Vi.Qtde > 0)

Grato por quem tentou me ajudar

 

falow

http://forum.imasters.com.br/public/style_emoticons/default/joia.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Na realidade a resposta acima da erro

 

a certa é essa

 

where ((D.Qtde is null) and (Ri.Quantidade - Vi.Qtde > 0)) or       ((Vi.Qtde is null) and (Ri.Quantidade - D.Qtde > 0)) or      (Ri.Quantidade - D.Qtde - Vi.Qtde > 0)

falow

http://forum.imasters.com.br/public/style_emoticons/default/joia.gif

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.