• 0
Sign in to follow this  
Guest Thiago Mengali

Dúvida Em Select

Question

Guest Thiago Mengali

tenho uma dúvida:

preciso criar um select no sql server, sendo que preciso unir o seguinte:

select documento.codigo, documento.data, itensdocumento.codigoitem, itendocumento.descricao

documento.codigocliente from documento

inner join documento on documento.codigo = itensdocumento.codigo

O que esta pegando é:

Na tabela Itensdocumento tenho os campos qtde_pedida e qtde_entregue, e preciso que

liste apenas os itens de documento, que tenham todos os itensdocumento.qtde_pedida =

itensdocuemnto.qtde_entregue. Se algum dos itens for diferente não devo mosrar nenhum.

e não posso usar view, stored procedure, nada disso, tem que ser apenas uma instrução

SQL pra ser executada em um gerador de relatórios.

o problema é o seguinte:

Eu consigo gerar um select da quantidade de itens que tem qtde_entregue = qtde_pedida

O que eu preciso é o seguinte: Listar apenas os documentos, em que todos os itens dele tenham qtde_pedida = qtde_entregue.

Por exemplo:

Um documento tem 5 intens, com a 3 com a qtde_pedida = qtde_entregue e 2 com a

qtde_pedida <> qtde_entregue. Este documento não deve aparecer.

Agora se todos os itens do documento tiverem qtde_pedida = qtde_entregue então este pedido deve aparecer com todos os seus itens

Share this post


Link to post
Share on other sites

2 answers to this question

Recommended Posts

  • 0
o problema é o seguinte:

Eu consigo gerar um select da quantidade de itens que tem qtde_entregue = qtde_pedida

O que eu preciso é o seguinte: Listar apenas os documentos, em que todos os itens dele tenham qtde_pedida = qtde_entregue.

Como você mesmo já disse, você precisa listar os itens que apenas estejam com valores iguais, só listará os itens que tem a qtde_pedida igual a qtde_entregue, isso significa uma restrição, listará só aqueles que tiverem essa condição ->(qtde_pedida = qtde_entregue)

Um documento tem 5 intens, com a 3 com a qtde_pedida = qtde_entregue e 2 com a

qtde_pedida <> qtde_entregue. Este documento não deve aparecer.

Agora se todos os itens do documento tiverem qtde_pedida = qtde_entregue então este pedido deve aparecer com todos os seus itens

Como em programação, isso é uma estrutura condicional, você precisa impor a condição, a palavra chave é o quando!!!

quado a opção for verdadeira, executar uma linha lógica de comando!

no seu problema você precisa usar um where, que em português significa quando!!!

Ficaria mais ou menos assim:

select (NOME DOS CAMPOS) ou select * (pra todos os campos)

from (NOME DA TABELA)

where qtde_pedida = qtde_entregue

Esse código listará apenas os itens que estiverem nessa condição (qtde_pedida = qtde_entregue)

Se quizer um campo ou campos específicos escolha select (NOME DOS CAMPOS) ou

se preferir todos os campos da tabela, escolha select *

Não sei se ajudou, mais espero que tenha chegado em seu objetivo!

Abraços...

Paulo!

Edited by paulo_linux

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this