Jump to content
maurouni

[Resolvido] Select que traga um resultado específico

Recommended Posts

Tenho uma tabela com preços de fornecedores e preciso de um select que me retorne apenas o melhor preço do fornecedor conforme ilustra a imagem em anexo.

forum.JPG

Share this post


Link to post
Share on other sites

Obrigado amigo, o problema que tenho enfrentado usando MIN é que depois do agrupamento o FORNECEDOR se perde, considerando um fornecedor que não tem o melhor preço...

Share this post


Link to post
Share on other sites

Este abaixo carrega tudo sem agrupar;

SELECT
    cotacao.CODPRODUTO,
    cotacao.PRODUTO,
    cotacao.CUSTO,
-- min(cotacao.CUSTO) as minimo,
    cotacao.FORNECEDOR,
    cotacao.`STATUS`,
    cotacao.UV,
    cotacao.`DATA`,
    cotacao.ST_2
FROM
    cotacao
WHERE
    CUSTO > 0
AND `STATUS` = 1 
-- GROUP BY 1

ORDER BY    PRODUTO, CUSTO

 

Este agrupa;

SELECT
    cotacao.CODPRODUTO,
    cotacao.PRODUTO,
    cotacao.CUSTO,
 min(cotacao.CUSTO) as minimo,
    cotacao.FORNECEDOR,
    cotacao.`STATUS`,
    cotacao.UV,
    cotacao.`DATA`,
    cotacao.ST_2
FROM
    cotacao
WHERE
    CUSTO > 0
AND `STATUS` = 1 
GROUP BY 1
ORDER BY    PRODUTO, CUSTO

 

Agora estou vendo se um procedimento armazenado usando um loop para cada código dará certo...

f3.JPG

Share this post


Link to post
Share on other sites

Grosso Modo serria

 

SELECT *
FROM
    cotacao c1
WHERE
c1.CUSTO = (SELECT  min(c2.CUSTO)
            FROM
                cotacao c2
            WHERE
              c2.CODPRODUTO = c1.CODPRODUTO)

Todavia usando as funções analíticas você pode montar um relatório melhor , tipo melhor preço, pior preço , média etc.

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 Marcones Borges
      Olá, bom dia, estou tendo dificuldade em uma filtragem, quando passo o parâmetro para o select em forma de variável ele não exibe resultados.
       
      Segue o código:

              $usuario='gerente';         function montaSelect()         {         $sql = "SELECT * FROM membros WHERE user='".$usuario."' ";                 $query = mysql_query( $sql );                 if( mysql_num_rows( $query ) > 0 )                 {                         while( $dados = mysql_fetch_assoc( $query ) )                         {                                 $opt .= '<option value="'.$dados['nome'].'">'.$dados['nome'].'</option>';                         }                 }                 else                         $opt = '<option value="0">Nenhum Membro cadastrado</option>';                 return $opt;         }


      Quando substituo a variável pelo nome usuário gerente, ele lista normal, mais na variável não da certo. já tentei user='{$usuario}'  , user='$usuario' , user=$usuario}, nenhuma forma funciona...

      Alguém pode me ajudar..
       
    • By Marcones Borges
      Olá boa tarde!
      Tenho 3 select e não estou conseguindo habilita-los pela seleção a ideia é selecionar tipo 1 habilita select 1, 2 habilita select 2.

        <select class="form-control input-sm" name="principal" id="principal">                       <option value="select1">Ativa select 1</option>                         <option value="select2">Ativa select 2</option>                       </select>   <select class="form-control input-sm" name="select1" id="select1">                       <option value="opção 1">opção 1</option>                         <option value="opção 2">opção 2</option>                         <option value="opção 3">opção 3</option>                       </select>   <select class="form-control input-sm" name="select2" id="select2">                       <option value="opção 7">opção 7</option>                         <option value="opção 8">opção 8</option>                         <option value="opção 9">opção 9</option>                       </select> //Java script <script type='text/javascript'> var principal = $("#principal"); var select1 = $("#select1"); var select2 = $("#select2"); inst.bind("input", function () {     principal.val("");     select1.val("");     select1.attr("list", null)     var option = $(inst.prop("list")).find("option[value='" + inst.val() + "']");     if (option != null && option.length > 0) {         principal.attr("list", "_" + option.attr("data-value"));     } else {                 principal.attr("list", null)     } }); </script>  
       
      Não consigo colocar pra funcionar...
       
      alguém me ajude um! 
       
    • By Diego-SLP
      Bom dia,
       
      Tenho uma pagina para editar meus registros do banco e em um campo select o que está definido no banco de dados não aparece selecionado, vem com um valor em branco, sendo que meu ID e meu VALOR para esta tela é o mesmo campo, nao estou utilizando ID e VALOR.
       
      <!--INICIO FORMULARIO PESQUISAR DOSAGEM--> <form action="atualizar_movcbuq.php?id=<?php echo $_GET['id']; ?>" method="post" name="pesquisar" > <?php $busca = mysqli_query($con,"SELECT data,faixa,ticket,quantidade,obra_cliente,horae,horas,placa,operacao from dosagem_usina where id ='".$_GET['id']."'"); while ($linha = mysqli_fetch_array($busca)) { $data = date('d/m/Y', strtotime($linha['data'])); $faixa = $linha['faixa']; $ticket = $linha['ticket']; $quantidade = $linha['quantidade']; $obra = $linha['obra_cliente']; $horae = $linha['horae']; $horas = $linha['horas']; $placa = $linha['placa']; ?> <!--INICIO CAMPO--> <div class="col-2"> <label>Faixa</label> <div class="input-group-prepend"> <span class="input-group-text"><i class="fas fa-list-ol"></i></span> <select class="form-control" name="faixa" style="width: 100%;" data-select2-id="1" aria-hidden="true"> <?php $preenche_faixa = mysqli_query($con,"select faixa from dosagem_usina group by faixa"); while($dados = mysqli_fetch_assoc($preenche_faixa)) { echo "<option value='".$dados['faixa']."' >".$dados['faixa']."</option>"; } ?> </select> </div> </div> <!--FIM CAMPO--> <?php } ?>  
    • By Public2004
      Boas. Gostaria da ajuda dos colegas para analisar a possibilidade de otimizar a seguinte situação: Tenho um "select" simples para trazer um registro específico e que atenda uma determinada condição (where) - Após este "select", recupero o "id" deste registro e utilizo para fazer mais dois "select", um para trazer o registro anterior e  outro para o próximo (id) utilizando MIN e MAX. Tem como fazer tudo isso em um único "select" ?
       
      Tks.
    • By danicarla
      Olá gente bom dia...
      tenho um select e gostaria de mudar o valor dele quando o botão do formulário for apertado para "Aguarde"

      Gostaria de fazer isso sem usar jquery
      Acho que é algo simples mas pela busca não achei nada..
       
      <script> function MudarSelect(){ // Mudar o select para AGUARDE } </script> <select name="conteudo" id="conteudo"> <option value="0" disabled selected>-- Selecione</option> <option value="Carros">Carros</option> <option value="Motos">Motos</option> </select> <input type="submit" value="Buscar" onclick="MudarSelect();" />  
×

Important Information

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