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

Publica seu sql e a estrutura da tabela.

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 reytlersouza
      Não consigo passar variável obtida por consulta no banco no value de uma TAG <option> "<option value="<?php $item['id_eq']?>">"
       
      O que está errado no meu código que ele não passa o valor de value no $_GET nem no $_POST?

       
      <?php
          echo $_GET['equi1'];
      ?>
      <form method="GET">   
          <select name="equi1" class="form-control">
              <?php
              require 'conn.php';
              $sql = $pdo->prepare("SELECT * FROM equipamento WHERE 1");
              $sql->execute();
              if($sql->rowCount() > 0) {
              foreach($sql->fetchAll() as $item) {
                                                                      
              ?>
              <option value="<?php $item['id_eq'];?>"><?php echo $item['nome'];?></option>
              <?php
                  }
                  }
                  ?>
          </select>
          <input type="submit" value="Salvar"/>
      </form>
    • By brunoogm
      Pessoal tenho uma tabela no php cujo resultado do select vindo do bd vem no seguinte formato:
      --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
      26       46        15/05/2019 13:57:25         Dinheiro                  Pendente                        Bacon Cheddar                          1          60.00
      26       46        15/05/2019 13:57:25         Dinheiro                  Pendente                        Chicken Club Sandwich            1          45.00
      26       46        15/05/2019 13:57:25         Dinheiro                  Pendente                        Philly Cheese Steak                   1          50.00
      26       46        15/05/2019 13:57:25         Dinheiro                  Pendente                        Smoke House                             1          55.00
      26       46        15/05/2019 13:57:25         Dinheiro                  Pendente                        Stream Miller                              1          35.00
      --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
       
      E eu gostaria de fazer um select para que nao repita os dados iguais e que a tabela viesse assim:
       
      --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
                                                                                                                                                      Bacon Cheddar                          1           60.00
                                                                                                                                                      Chicken Club Sandwich           1            45.00
      26    46        15/05/2019 13:57:25         Dinheiro                  Pendente                           Philly Cheese Steak                   1            50.00
                                                                                                                                                      Smoke House                             1            55.00
                                                                                                                                                      Stream Miller                              1            35.00
      --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
       
      Alguem pode me ajudar, qual seria a melhor forma de fazer ?

      Essa tabela é gerada com um while no php entao se alguem saber uma outra maneira de montar isso aceito dicas.
       
      php: 
      -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
      echo "<tr role='row' class='odd'>";
                                                      echo "<td class='sorting_1'>" .$resultado['CodigoComanda']. "</td>";
                                                      echo "<td>" .$resultado['Nome']."</td>";
                                                      echo "<td>" .$resultado['Quantidade']."</td>";
                                                      echo "<td>" .$resultado['Preco']."</td>";
                                                      echo "<td>" .$resultado['Metodos']."</td>";
                                                      echo "<td>" .$resultado['DataPedido']."</td>";
                                                      echo "<td>" .$resultado['Situacao']."</td>";
      echo "</tr>";
      -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
       
      vlw pessoal
       
    • By brunoogm
      Pessoal tenho uma tabela no php cujo resultado do select vindo do bd vem no seguinte formato:
      --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
      26       46        15/05/2019 13:57:25         Dinheiro                  Pendente                        Bacon Cheddar                          160.00
      26       46        15/05/2019 13:57:25         Dinheiro                  Pendente                        Chicken Club Sandwich            145.00
      26       46        15/05/2019 13:57:25         Dinheiro                  Pendente                        Philly Cheese Steak                   150.00
      26       46        15/05/2019 13:57:25         Dinheiro                  Pendente                        Smoke House                             155.00
      26       46        15/05/2019 13:57:25         Dinheiro                  Pendente                        Stream Miller                              135.00
      --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
       
      E eu gostaria de fazer um select para que nao repita os dados iguais e que a tabela viesse assim:
       
      --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
                 46        15/05/2019 13:57:25         Dinheiro                  Pendente                        Bacon Cheddar                          160.00
                                                                                                                                                      Chicken Club Sandwich            145.00
                                                                                                                                                      Philly Cheese Steak                   150.00
       Smoke House                             155.00
      26       46        15/05/2019 13:57:25         Dinheiro                  Pendente                        Stream Miller                              135.00
      --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
       
    • By alison.com
      Olá,
      Preciso "dar um tab" após selecionar o produto em um select.
      Por ex:
      <select name="produto" >
                    <option value="1"> Produto 1  </option>
                    <option value="2"> Produto 2  </option>
                    <option value="3"> Produto 3  </option>
      </select>
      <input type="text" name="qtd"  />
       
      Ao selecionar o produto, automaticamente já passa para o campo qtd para eu colocar qtd desejada.
       
      Como faço isso?
      Já pesquisei bastante mas não encontrei a solução.
       
      Desde já, agradeço a atenção.
    • By dutopfave
      Galera, tenho um cadastro com ajax, até ai blz tava funcionando, so que quis fazer uma verificação se o email ja existi não, se ja existe ai seria como erro, caso ao contrario seria success e cadastrava normal, so não ta indo dps q fiz isso não sei oq é, segue codigo Ajax e PHP:
       
      Ajax:
       
      $(document).ready(function(e) { $("form[ajax=cadastro]").submit(function(e) { e.preventDefault(); var form_data = $(this).serialize(); var form_method = $(this).attr("method").toUpperCase(); $.ajax({ url: 'salvar_cadastro.php', type: form_method, data: form_data, cache: false, dataType: 'json', success: function(data){ if(data == 'true'){ window.location = 'cadastro.php?modal=ok'; }else{ window.location = 'cadastro.php?modal=error'; } }, }); }); });  
       
      PHP (salvar_cadastro.php):
       
      <?php require 'Connections/config.php'; date_default_timezone_set('America/Sao_Paulo'); // INICIO VERIFICAR SE EMAIL JÁ EXISTE $email_verificar = addslashes($_POST['email']); $Verifica_Email = $pdo->prepare("SELECT email FROM cad_administracao WHERE email = :email"); $Verifica_Email->bindValue(":email", $email_verificar); $Verifica_Email->execute(); if($Verifica_Email->rowCount() > 0){ $data = array("success" => false); echo json_encode($data); }else{ // FIM VERIFICAR SE EMAIL JA EXISTE $nome = addslashes($_POST['nome']); $sobrenome = addslashes($_POST['sobrenome']); $email = addslashes($_POST['email']); $cpf_cnpj = addslashes($_POST['cpf_cnpj']); $pessoa = addslashes($_POST['pessoa']); $sexo = addslashes($_POST['sexo']); $telefone = addslashes($_POST['telefone']); $endereco = addslashes($_POST['endereco']); $numero = addslashes($_POST['numero']); $complemento = addslashes($_POST['complemento']); $cidade = addslashes($_POST['cidade']); $bairro = addslashes($_POST['bairro']); $cep = addslashes($_POST['cep']); $estado = addslashes($_POST['estado']); $como_conheceu = addslashes($_POST['como_conheceu']); $foto = addslashes($_POST['foto']); $login = addslashes($_POST['login']); $senha = addslashes(md5($_POST['senha'])); $status = addslashes($_POST['status']); $active = addslashes($_POST['active']); $data = addslashes(date('Y-m-d H:i:s')); $Inserir = $pdo->prepare("INSERT INTO cad_administracao (nome, sobrenome, email, cpf_cnpj, pessoa, sexo, telefone, endereco, numero, complemento, cidade, bairro, cep, estado, como_conheceu, foto, login, senha, status, active, data) VALUES (:nome, :sobrenome, :email, :cpf_cnpj, :pessoa, :sexo, :telefone, :endereco, :numero, :complemento, :cidade, :bairro, :cep, :estado, :como_conheceu, :foto, :login, :senha, :status, :active, :data)"); $Inserir->bindValue(":nome", $nome); $Inserir->bindValue(":sobrenome", $sobrenome); $Inserir->bindValue(":email", $email); $Inserir->bindValue(":cpf_cnpj", $cpf_cnpj); $Inserir->bindValue(":pessoa", $pessoa); $Inserir->bindValue(":sexo", $sexo); $Inserir->bindValue(":telefone", $telefone); $Inserir->bindValue(":endereco", $endereco); $Inserir->bindValue(":numero", $numero); $Inserir->bindValue(":complemento", $complemento); $Inserir->bindValue(":cidade", $cidade); $Inserir->bindValue(":bairro", $bairro); $Inserir->bindValue(":cep", $cep); $Inserir->bindValue(":estado", $estado); $Inserir->bindValue(":como_conheceu", $como_conheceu); $Inserir->bindValue(":foto", $foto); $Inserir->bindValue(":login", $login); $Inserir->bindValue(":senha", $senha); $Inserir->bindValue(":status", $status); $Inserir->bindValue(":active", $active); $Inserir->bindValue(":data", $data); $Inserir->execute(); $data = array("success" => true); echo json_encode($data); } ?>  
×

Important Information

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