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 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 ?
    • By alexandre.koupaka
      Salve galera,
      Estou com a tarefa de criar uma infra de alta disponibilidade de MariaDB,
      Para os servidores de MariaDB pretendo utilizar Galera, alguém tem uma sugestão melhor?
      Outra duvida seria nos pros e contras de usar MariaDB em Multi-master e Master-Slave?
      Para o proxy e Balanceador de carga tenho duvida entre HaProxy que trabalha na camada OSI de transporte, Proxy e MaxScale, ambos trabalham na camada de aplicação,
      na quesito velocidade acredito que o HaProxy seja mais rápido, porém não tem muitas funcionalidade como o outros dois, quais vcs me aconselham?
       
    • By milokoz
      Basicamente eu estou com um leve problema:
      Warning: mysqli_error() expects exactly 1 parameter, 0 given in C:\xampp\htdocs\_config\classes\class.MySQL.php on line 17
      Não foi possível encontrar o banco de dados "test".
      A DB está criada no PHP 
      http://prntscr.com/p5epzn

      e esta nomeada corretamente
      # Definições e conexão com à DATABASE
      define("DB_HOST", "localhost");
      define("DB_PORT", "3303");
      define("DB_USER", "root");
      define("DB_PASS", "");
      define("DB_NAME", "test");
    • By erikalopes
      Olá pessoas, eu estou estudando Banco de Dados (postgresql com pgadmin3) e
      criei as seguintes tabelas (Foto), e agora eu preciso selecionar nome de medico e paciente que estão na tabela consulta,
      eu tentei de algumas maneiras como esta abaixo, filtrando por nome da clinica, porém ele me dá esse erro:
       
      ERROR:  table name "pessoa" specified more than once
       
      -----------------------------------------------------------------------------------------------------------------------------------------
      -----------------------------------------------------------------------------------------------------------------------------------------
      alguém poderia me ajudar a filtrar essas informações usando inner join?

    • By Sapinn
      Salve comunidade! Volto aqui com uma dúvida que está persistindo. Estou desenvolvendo um site de redações online em que o professor corrigi e a correção fica estacada
      Exemplo:
      Eu gosta mas de você.
      Quando ele for ver a correção terá:
      Eu gosto mas(o correto seria "mais") de você.
      O problema é que quando é um texto muito grande como uma redação ele além de marcar a diferença entre os textos marca outras palavras.
      Talvez haja um problema no código ou fazer isso seja impossivel mas eu queria basicamente o que o site https://clevert.com.br/comp/ faz.
      Alguém me ajuda ai na moral.
      Aqui está meu código:
      <?php $id = $_GET['id']; $pega = mysql_query("select * from correcao where codigo_redacao='$id'")or die(mysql_error()); $linhacorrecao = mysql_fetch_assoc($pega); ?> <?php function get_str_difs($str1, $str2) { $first = explode(" ", $str1); $second = explode(" ", $str2); $arrDif1 = array_diff($first,$second); $arrDif2 = array_diff($second,$first); $old = ''; $new = ''; foreach($first as $word) { if(in_array($word,$arrDif1)) { $old .= "<del style='background-color:#ffcccc'>" . $word . "</del> "; continue; } $old .= $word . " "; } foreach($second as $word) { if(in_array($word,$arrDif2)) { $new .= "<b style='color:red;'> " . $word . " </b>"; continue; } $new .= $word . " "; } return array('old' => $old, 'new' => $new); } $str1 = $linha['redacao']; $str2 = $linhacorrecao['correcao']; $difs = get_str_difs($str1, $str2); echo ' <center><div class="correcao" name="redacao" rows="30" cols="100">'.$difs['new']. '</div></center>';   ?>
×

Important Information

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