Jump to content
Bruno - BuhDesign

PHP + Mysql: Agrupar resultados iguais excluindo o final "diferente"

Recommended Posts

Bom dia pessoal.

Bom, estou trabalhando no banco de dados MySQL de um cliente, onde ele salva o curso da seguinte forma:

 

NOME DO CURSO || LONDRINA - PR
NOME DO CURSO || CURITIBA - PR

 

Eu preciso fazer uma contagem, por curso, independente da cidade. Ou seja, se eu fizer um GROUP BY ele não
vai juntar LONDRINA e CURITIBA. Como posso contornar esta divergência?  Teria uma forma de agrupar, até encontrar
o carácter || ou agrupar por "semelhantes"?

De fato, LONDRINA e CURITIBA possuem o mesmo curso e precisavam aparecer na mesma contagem. 

Muito obrigado desde já.

Share this post


Link to post
Share on other sites

Olá Gabriel.

Na verdade, é uma tabela somente.

O campo [curso] recebe o valor assim

1 Curso tal || SP

1 Curso tal || PR

1 Curso tal || SP

 

Se eu fizer um GROUP BY ele trás 

2 Curso tal || SP

1 Curso tal || PR

 

Quando na verdade eu precisava exatamente dos 3 pro "Curso tal". Não da pra fazer um COUNT porque tem outros cursos na mesma situação.

Share this post


Link to post
Share on other sites

Tenta assim:

SELECT (CASE WHEN coluna_curso LIKE 'curso1%' THEN 'curso1'
             WHEN coluna_curso LIKE 'curso2%' THEN 'curso2'
        END) as curso, COUNT(*)
FROM tabela_cursos
GROUP by (CASE WHEN coluna_curso LIKE 'curso1%' THEN 'curso1'
               WHEN coluna_curso LIKE 'curso2%' THEN 'curso2'
          END);

 

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 gabrielslessa
      Olá amigos, sou novato no PDO e estou quebrando cabeça para fazer uma consulta e somar os valores da coluna da tabela de itens com um parametro predefinido ('id' e 'pedido_min') onde id é o id do produto e pedido_min está no bd mysql como (ENUM) Y ou N, onde Y quer dizer que esse produto não entra na soma do pedido minimo da compra e N entra na soma do pedido minimo. Estou fazendo isso para que produtos como exemplo de cigarros não entrem na conta do pedido minimo. 
       
      Tenho um FOREACH que lista os produtos que estao na SESSION php, dentro ou fora desse FOREACH eu preciso somar os produtos que possuem o parametro Y na coluna 'pedido_min' do bd, para diminuir da soma total  do carrinho de compras e checar se o cliente atingiu o valor minimo de compra (15,00), caso tenha atingido o valor minimo entao libera o botao para fechar o pedido.
       
      meu código está abaixo:
       
      <div class="card-body"> <?php //buscando no bd o valor do pedido minimo $config = app('db')->select("SELECT as_configura.* FROM as_configura"); $config = $config[0]; //montando cart dos produtos sa session $cart_box = '<ul class="cart-products-loaded">'; $total = 0; $total_acresc = 0; foreach ($_SESSION["products"] as $product) : $product_name = $product["product_name"]; $product_price = $product["product_price"]; $product_acresc = $product["product_acresc"]; $id = $product["id"]; $product_qty = $product["product_qty"]; //somando o subtotal de cada item do carrinho $subtotal = ($product_price * $product_qty); //total de todos o s itens $total = ($total + $subtotal); // checa se tem itens que nao entram na soma do pedido minimo $result = app('db')->select("SELECT as_produtos.preco FROM as_produtos WHERE id = $id AND as_produtos.pedido_min = 'Y'"); //soma o valor total dos itens que nao entram na soma do pedido minimo $total_cigarro = app('db')->query("SELECT SUM(preco) AS total FROM as_produtos WHERE pedido_min = 'Y' AND id = $id ")->fetchColumn(); $checaCigarro = $total - $total_cigarro; //checa de atingiu o pedido minimo if ($total < $config['ped_minimo']) { echo "O pedido mínimo é de R$ ".$config['ped_minimo'].",00"; //se tem itens que nao entram na soma do pedido minimo e soma } else if (count($result) >= 1) { if ($checaCigarro < $config['ped_minimo']) { echo "Cigarros não entram na soma de R$ ".$config['ped_minimo'].",00 do pedido mínimo."; } ?> <!-- PRODUCT --> AQUI ENTRAM AS INFORMACOES DE CADA ITEM <!-- END PRODUCT --> <?php endforeach; ?>  
    • By fabioamorais
      Ola pessoal, sou novo aqui no fórum e também no mundo da programação. 

      Estou criando um sistema de cadastro de clientes em PHP 7 e mysql
      para meu serviço para fins de organização, tenho ja pronto o sistema de cadastro e edição do cliente, tenho login por usuário e senha.
      preciso colocar nesse sistema uma forma que registre a ação e o usuário que fez a ação quando houver uma alteração no cadastro.
      exemplo;
      O usuario (jose) alterou o status de analise para concluído .
      o usuario (pedro) alterou a localização de mesa para armario.
      e que fosse exibido como um tipo de histórico de eventos no próprio cadastro do cliente.
      e nesse campo se ainda tiver como add cometários.
      Usuario (jose): Precisa entrar em contato com o cliente francisco. 
      Usuario (pedro): cliente foi avisado e está sabendo.
       
      quem souber uma forma de fazer isso, ficaria muito grato.

    • By proflupin
      Estou com a seguinte dificuldade, possuo um <a> que busca uma id numa tabela do banco de dados, conforme abaixo:
       
      <a href="self_service.php?id=<?php echo $row_produto['id_categoria_chamado']?>" class="btn btn-primary"data-toggle="collapse" data-target="#subcategoria" aria-expanded="false" aria-controls="collapseExample">Visitar</a> A consulta é realizada, pois vejo que um novo link é mostrado no rodapé da página:

       
      Esta página self_service.php mostrada acima, é minha página principal, onde tudo é trabalhado. Se por exemplo eu mudar para outro arquivo php, teste.php por exemplo, uma nova página é aberta e consigo exibir os resultados normalmente.
       
      O problema é: quero abrir este ID na mesma página, dentro de um collapse. Exemplo:
       
      Cliquei em visitar na categoria Totvs...
       
       
      Um collapse abre-se logo abaixo:

       
      O que não consigo fazer é resgatar o ID passado pelo botão VISITAR em meu collapse, se eu tenter o $_GET['id'], não vai retornar nenhum valor, pois a URL não muda quando trabalhamos com collapse.
×

Important Information

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