Jump to content
Fabiojdc

Query

Recommended Posts

Tenho esses campos em uma tabela, quando faço a consulta, faço pelo campo cod_mt 32185, porem ao enxergar que no cod_vd existe 2X o codigo 32183 eu preciso que na query me traga a informação do cod_mt 32176, porem nao estou conseguindo fazer essa query, alguem consegue me ajudar?obrigado.

 

ID   cod_mt  cod_vd  QTD

1    32176    32183      1    
4    32185    32183      1    
9    32186    32182      1    

 

Se eu uso essa query 

 

select item_ordem_producao.prod_codigo, PRODUTO_MAT_PRIMA.prod_codigo_venda from item_ordem_producao
left join PRODUTO_MAT_PRIMA on item_ordem_producao.prod_codigo = PRODUTO_MAT_PRIMA.prod_codigo_mat_prima
where PRODUTO_MAT_PRIMA.prod_codigo_mat_prima in (32185)
 

me traz o resultado abaixo:

 

32185    32183
32185    32183

 

Sendo que no lugar do primeiro 32185 teria que me trazer 32176

Share this post


Link to post
Share on other sites

Fabio, a 1a tabela foi extraída de uma query ou foi montada para explicar o conjunto de dados?

 

Estou questionando isso, pois olhando a tabela me parece que o resultado que você precisa é exatamente a tabela, sem a primeira e a última coluna, certo?

 

se você montou essa tabela usando uma query sugiro fazer o seguinte ajuste no resultado dessa tabela (no exemplo vou chamar essa tabela de TABELA1):

 

-- [exemplo A]: deve retornar apenas 1 linha

SELECT * FROM TABELA1 WHERE cod_mt= 32185

 

-- [exemplo B]: deve retornar 2 linhas

SELECT * FROM TABELA1 WHERE cod_vd= 32183

 

--sugestão de solução, assumindo a premissa que a 1a tabela você extraiu com uma query

 

1. Crie uma procedure que tenha 2 parâmetros, sendo que um é o filtro e o outro é o tipo da consulta que você quer fazer

 

-- definindo o valor do filtro

declare @filtro int

set @filtro = 32185

 

declare @tipo int

 

-- defina o @tipo = 1 se a busca for pela materia prima (igual ao Exemplo A)

SET @tipo = 1 --materia prima

 

-- OU defina o @tipo = 2 se a busca for pelo código de venda (igual ao Exemplo B)

SET @tipo = 2 --código de venda

 

Ao definir essas duas variáveis, você pode fazer a consulta abaixo que dará certo.

 

SELECT * FROM TABELA1 WHERE ( cod_vd= @filtro and @tipo = 1) or ( cod_vd= @filtro and @tipo = 2)

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By Luciano Marques
      Então pessoal é o seguinte: Estou tendo problemas para impedir acesso simultâneo no meu projeto. Foi depois de muito pesquisar que vim aqui abrir esse tópico. 
      Enfim, eu até consegui colocar uma teoria em prática que era a de criar uma coluna na tabela `usuarios` com 1 para ativo, e 2 para  inativo. e depois coloquei no topo a condição IF para se 1 já preenchido não permite o login. até ai de boa. o problema vem se o usuário não desloga só fecha a janela. a coluna ainda permanece como ativa 1. mesmo expirando o login, não ocorre o update na base de dados. Se alguém puder me ajudar nessa, preciso concluir esse trabalho ainda essa semana. desde já agradeço 
    • By drx
      Olá Pessoal!
       
      Eu estou tentando instalar o sgbd navicat para acessar meu banco de dados, porém sem sucesso. 
      Pergunta: Para usar o sgbd navicat é necessário instalar o mysqlserver  ou o navicat já traz no pacote dele ao instalar?
      Aguardo.
       
    • By renzogr
      Olá Masters
       
      Estou precisando incluir uma string num campo de uma tabela mysql.
      É o seguinte:
      Tenho um campo contendo instruções de uma receita culinária e preciso colocar a string "-- " (sem aspas) no início de cada linha do campo das instruções.
      Já tentei o 
      UPDATE tabela SET variavel = concat("-- ", variavel); mas ele só altera a primeira linha...  Preciso encontrar as demais linhas dentro do campo e colocar a string na frente.
       
      Alguém tem uma ideia de como fazer ?
       
    • By mayko@123
      TENHO O SEGUINTE SELECT :   select loja,NOME,PREÇO from produtos  GROUP BY NOME,LOJA order by NOME,PREÇO ASC ;
      E O RETORNO É : 
       
      LOJA             NOME                            PREÇO
      A banana prata 1,98 C                  banana prata 1,99 B          COCO VERDE 1 123   COCO VERDE 1 C  COCO VERDE 1 C   laranja pera rio 0,49 A       laranja pera rio 1,99 123 laranja pera rio 1211 B LARANJA SERRA DAGUA 1,99 C LARANJA SERRA DAGUA 2,99 B maca fuji 2,50 C maca fuji 2,97 A maca fuji 2,99 B MAMAO 1,97 C MAMAO 2,10 123 PESSEGO 12 C PESSEGO 2,30 A PESSEGO 234 C UVA 1212 123 UVA 212 A UVA 3,25  
      QUERIA QUE ME RETORNASSE APENAS O PRIMEIRO PRODUTO,PREÇO DE CADA LOJA POR EXEMPLO : A LOJA 'A'  VENDEU A BANANA MAIS BARATA, A LOJA 'B' VENDEU O COCO VERDE MAIS BARATO A LOJA 'C' A LARANJA..... e assim por diante , senão o retorno vai ficar muito extenso pois vai ser muitas lojas e produtos.
    • By lordstarlight
      Olá pessoal,
       
      Tenho uma base de dados onde há um campo decimal que guarda um valor tipo (10.20).
      Quanto tento retornar o valor multiplicado por quantidade (10.2 * 2) retorna apenas 20,00
       
      $subTotal = $qtdeItem * $precoProduto;
      echo  'R$ '.number_format($subTotal,2,",",".");?><br>
       
      Como faço para retornar 20,40 ?
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.