Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

josenilson

select count com vários campos da coluna

Recommended Posts

Pessoal, em uma tabela tenho as

guintes colunas :  UF_Atual,  Status_Jornada  e FinalizarJornada.

 Na coluna Status_Jornada tenho os seguintes campos (

MANUTENÇÃO
EM VIAGEM
AGUARDANDO CARGA
DESCARREGANDO
VAZIO
AGUARDANDO CARREGAMENTO
CARREGADO
CARREGANDO

)

preciso saber quantos veículos tenho em cada situação dentro do estado que desejo  no exemplo abaixo com ajuda do colaborador Edcesar  eu consigo o resultado que quero porem somente em dois campos,  usando o count(*). Preciso adicionar os demais campos AGUARDANDO CARGA, DESCARREGANDO etc. como faço isso ?

 muito obrigado a todos . 

 

segue o código. 

 

SELECT COUNT(*) AS CARREGADO,(SELECT COUNT(*) FROM `cad_jornada` WHERE`UF_Atual`='BA' AND Status_Jornada ='VAZIO' AND `FinalizarJornada` = '1') VAZIO FROM `cad_jornada` WHERE`UF_Atual`='BA' AND Status_Jornada ='CARREGADO' 
AND `FinalizarJornada` = '1'se

 

print do resultado consultado no banco . 

5964d3a2de175_selectcount.thumb.png.2e3a97e0cb8fa03b73521b72246d161f.png

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Em tese


 

select  Status_Jornada ,count(*)
from cad_jornada
group by  Status_Jornada 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites
1 minuto atrás, Motta disse:

Em tese


 


select  Status_Jornada ,count(*)
from cad_jornada
group by  Status_Jornada 

 

Blz mota ? 

então  desse jeito eu recebo um retorno de toda a coluna Status_Jornada preciso parametrizar  as colunas UF_Atual = "BA" e FinalizarJornada = "1" . 

no portugol seria, selecione a coluna Status_Jornada na tabela cad_jornada, onde a coluna UF_Atual = "BA"  e FinalizarJornada = "1"  porem quero isso em contador tipo contando  quantos valores se tem para cada campo da coluna Status_Jornada. 

 

 

  

Compartilhar este post


Link para o post
Compartilhar em outros sites
select  Status_Jornada ,count(*)
from cad_jornada
where UF_Atual = 'BA' e FinalizarJornada = '1'
group by  Status_Jornada 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

@josenilson, veja se é isso que você quer:

 

SELECT Status_Jornada, COUNT(*) FROM cad_jornada WHERE UF_Atual = 'BA' AND FinalizarJornada = '1' GROUP BY Status_Jornada;

 

Compartilhar este post


Link para o post
Compartilhar em outros sites
2 horas atrás, JosimarNew disse:

@josenilson, veja se é isso que você quer:

 


SELECT Status_Jornada, COUNT(*) FROM cad_jornada WHERE UF_Atual = 'BA' AND FinalizarJornada = '1' GROUP BY Status_Jornada;

 

Josemir , assim ate funciona no banco porem isso afeta minha estrutura no PHP . 

 

olha meu código . 

 

<?php
	

// Instancia o objeto PDO
$pdo = new PDO('mysql:host=localhost;dbname=painel_logistico', 'root', '');
// define para que o PDO lance exceções caso ocorra erros
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
// executa a instrução SQL
$consulta = $pdo->query("SELECT COUNT(*) AS CARREGADO,(SELECT COUNT(*) FROM `cad_jornada` WHERE`UF_Atual`='BA' AND Status_Jornada ='VAZIO' AND `FinalizarJornada` = '1') VAZIO FROM `cad_jornada` WHERE`UF_Atual`='BA' AND Status_Jornada ='CARREGADO' 
AND `FinalizarJornada` = '1'" );


while ($linha = $consulta->fetch(PDO::FETCH_ASSOC)) {
    // aqui eu mostro os valores de minha consulta
$CARREGADO = $linha["CARREGADO"]; 
$VAZIO = $linha["VAZIO"]; 






echo "CARREGADO: $CARREGADO.<br>";
echo "VAZIO: $VAZIO.<BR>";

}



?>

Se eu mudar a consulta, ou seja , colocar como você deu de exemplo:

o meu while da erro . 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você quer essas informações dispostas em colunas?

 

SELECT
	(
		SELECT
			COUNT(*)
		FROM
			cad_jornada
		WHERE
			UF_Atual = 'BA'
		AND FinalizarJornada = '1'
		AND Status_Jornada = 'CARREGADO'
	)AS CARREGADO,
	(
		SELECT
			COUNT(*)
		FROM
			cad_jornada
		WHERE
			UF_Atual = 'BA'
		AND FinalizarJornada = '1'
		AND Status_Jornada = 'VAZIO'
	)AS VAZIO
FROM
	cad_jornada GROUP BY CARREGADO

 

Compartilhar este post


Link para o post
Compartilhar em outros sites
40 minutos atrás, JosimarNew disse:

Você quer essas informações dispostas em colunas?

 


SELECT
	(
		SELECT
			COUNT(*)
		FROM
			cad_jornada
		WHERE
			UF_Atual = 'BA'
		AND FinalizarJornada = '1'
		AND Status_Jornada = 'CARREGADO'
	)AS CARREGADO,
	(
		SELECT
			COUNT(*)
		FROM
			cad_jornada
		WHERE
			UF_Atual = 'BA'
		AND FinalizarJornada = '1'
		AND Status_Jornada = 'VAZIO'
	)AS VAZIO
FROM
	cad_jornada GROUP BY CARREGADO

 

Isso mesmo, mas agora como faz para adicionar os outros parâmetros que contem  na coluna StatusJornada,  preciso dessa estrutura ai  mesmo, só que não acerto adicionar os outros parâmetros restantes, exemplo : 

 

MANUTENCAO
EM VIAGEM
AGUARDANDO CARGA
DESCARREGANDO
VAZIO
AGUARDANDO CARREGAMENTO
CARREGADO
CARREGANDO

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ficou meio grande a consulta rsrsrsrrs

 

SELECT
	(
		SELECT
			COUNT(*)
		FROM
			cad_jornada
		WHERE
			UF_Atual = 'BA'
		AND FinalizarJornada = '1'
		AND Status_Jornada = 'CARREGADO'
	)AS CARREGADO,
	(
		SELECT
			COUNT(*)
		FROM
			cad_jornada
		WHERE
			UF_Atual = 'BA'
		AND FinalizarJornada = '1'
		AND Status_Jornada = 'VAZIO'
	)AS VAZIO,
	(
		SELECT
			COUNT(*)
		FROM
			cad_jornada
		WHERE
			UF_Atual = 'BA'
		AND FinalizarJornada = '1'
		AND Status_Jornada = 'MANUTENCAO'
	)AS MANUTENCAO,
	(
		SELECT
			COUNT(*)
		FROM
			cad_jornada
		WHERE
			UF_Atual = 'BA'
		AND FinalizarJornada = '1'
		AND Status_Jornada = 'EM VIAGEM'
	)AS EM_VIAGEM,
	(
		SELECT
			COUNT(*)
		FROM
			cad_jornada
		WHERE
			UF_Atual = 'BA'
		AND FinalizarJornada = '1'
		AND Status_Jornada = 'AGUARDANDO CARGA'
	)AS AGUARDANDO_CARGA,
	(
		SELECT
			COUNT(*)
		FROM
			cad_jornada
		WHERE
			UF_Atual = 'BA'
		AND FinalizarJornada = '1'
		AND Status_Jornada = 'DESCARREGANDO'
	)AS DESCARREGANDO,
	(
		SELECT
			COUNT(*)
		FROM
			cad_jornada
		WHERE
			UF_Atual = 'BA'
		AND FinalizarJornada = '1'
		AND Status_Jornada = 'AGUARDANDO CARREGAMENTO'
	)AS AGUARDANDO_CARREGAMENTO,
	(
		SELECT
			COUNT(*)
		FROM
			cad_jornada
		WHERE
			UF_Atual = 'BA'
		AND FinalizarJornada = '1'
		AND Status_Jornada = 'CARREGANDO'
	)AS CARREGANDO
FROM
	cad_jornada
GROUP BY
	CARREGADO

Lembre-se que FinilicarJornada, UF_Atual e Status_Jornada você deve substituir por variáveis no seu código.

Compartilhar este post


Link para o post
Compartilhar em outros sites
51 minutos atrás, JosimarNew disse:

Ficou meio grande a consulta rsrsrsrrs

 


SELECT
	(
		SELECT
			COUNT(*)
		FROM
			cad_jornada
		WHERE
			UF_Atual = 'BA'
		AND FinalizarJornada = '1'
		AND Status_Jornada = 'CARREGADO'
	)AS CARREGADO,
	(
		SELECT
			COUNT(*)
		FROM
			cad_jornada
		WHERE
			UF_Atual = 'BA'
		AND FinalizarJornada = '1'
		AND Status_Jornada = 'VAZIO'
	)AS VAZIO,
	(
		SELECT
			COUNT(*)
		FROM
			cad_jornada
		WHERE
			UF_Atual = 'BA'
		AND FinalizarJornada = '1'
		AND Status_Jornada = 'MANUTENCAO'
	)AS MANUTENCAO,
	(
		SELECT
			COUNT(*)
		FROM
			cad_jornada
		WHERE
			UF_Atual = 'BA'
		AND FinalizarJornada = '1'
		AND Status_Jornada = 'EM VIAGEM'
	)AS EM_VIAGEM,
	(
		SELECT
			COUNT(*)
		FROM
			cad_jornada
		WHERE
			UF_Atual = 'BA'
		AND FinalizarJornada = '1'
		AND Status_Jornada = 'AGUARDANDO CARGA'
	)AS AGUARDANDO_CARGA,
	(
		SELECT
			COUNT(*)
		FROM
			cad_jornada
		WHERE
			UF_Atual = 'BA'
		AND FinalizarJornada = '1'
		AND Status_Jornada = 'DESCARREGANDO'
	)AS DESCARREGANDO,
	(
		SELECT
			COUNT(*)
		FROM
			cad_jornada
		WHERE
			UF_Atual = 'BA'
		AND FinalizarJornada = '1'
		AND Status_Jornada = 'AGUARDANDO CARREGAMENTO'
	)AS AGUARDANDO_CARREGAMENTO,
	(
		SELECT
			COUNT(*)
		FROM
			cad_jornada
		WHERE
			UF_Atual = 'BA'
		AND FinalizarJornada = '1'
		AND Status_Jornada = 'CARREGANDO'
	)AS CARREGANDO
FROM
	cad_jornada
GROUP BY
	CARREGADO

Lembre-se que FinilicarJornada, UF_Atual e Status_Jornada você deve substituir por variáveis no seu código.

Muito obrigado mano, deu tudo certo , 

 

tópico encerrado . 

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por josenilson
      Galera,  tenho uma tabela com a coluna status de jornada nesta consta alguns status tais como (carregado, vazio etc )
      quero realizar uma consulta na coluna  status_jornada na tabela cad_jornada, onde me mostro quantos  carregados eu tenho e quantos vazio.
       
      estou fazendo da seguinte maneira:
       
      SELECT COUNT(*) AS CARREGADO FROM `cad_jornada` WHERE`UF_Atual`='BA' AND Status_Jornada ='CARREGADO' AND `FinalizarJornada` = '1'; SELECT COUNT(*) AS VAZIO FROM `cad_jornada` WHERE`UF_Atual`='BA' AND Status_Jornada ='VAZIO' AND `FinalizarJornada` = '1 tem como deixar isso  mais limpo, ou seja, em apenas um select, pois tenho que colocar isso em uma função na pagina php, assim não daria certo ou seja dois  selects . 
       
      muito obrigado a todos. 
    • Por Fábio BN
      Olá pessoal.

      Preciso fazer um Select Count, e um Setect Count com Group By numa tabela para pegar a quantidade total de registros.
      Exemplo:
       
      $estoque = "1" $var_total_geral=$pdo->prepare("select count(categoria) from loja_virtual WHERE estoque=:estoque"); $var_total_geral->bindValue(":estoque",$estoque); $var_total_geral->execute(); Depois preciso pegar e exibir a quantidade total  do código acima, porém tem algum erro acima e não sei qual comando usar para exibir a quantidade total.

      Depois preciso fazer outros select agrupado, onde eu preciso saber as quantidade de registros de cada categoria.
      Exemplo:
      Categoria 1 ( 40 Registros )
      Categoria 2 ( 32 Registros )
      Categoria 3 ( 18 Registros )

      Tentei isso abaixo:
      $var_quantidades=$pdo->prepare("select count(categoria) as total from loja_virtual WHERE estoque=:estoque group by categoria" ); $var_quantidades->bindValue(":estoque",$estoque); $var_quantidades->execute(); Como eu faço esse código acima funcionar e como exibo as quantidade agrupadas?

      Se alguém puder me ajudar, Obrigado!
       
      Fábio.
       
    • Por empirerock
      Pessoal, boa tarde.
      Preciso fazer uma contagem de registros, só que com filtros.
      Queria saber como fazer sem fazer vários select.
      Tipo preciso saber quantos registros tenho com IKS-0, quantos registros IKS-1, e assim vai até IKS-7.
      Alguém pode me ajudar?
      //********************************************************************************************** $sql = ("SELECT * FROM dia WHERE status = 'A' AND planejador = 'IKS-0' "); $r = mysql_query($sql); $total = mysql_num_rows($r); echo "Total IKS-0: ".$total; echo "<br>"; //********************************************************************************************** //********************************************************************************************** $sql1 = ("SELECT * FROM dia WHERE status = 'A' AND planejador = 'IKS-1' "); $r1 = mysql_query($sql1); $total1 = mysql_num_rows($r1); echo "Total IKS-1: ".$total1; echo "<br>"; //********************************************************************************************** //********************************************************************************************** $sql2 = ("SELECT * FROM dia WHERE status = 'A' AND planejador = 'IKS-2' "); $r2 = mysql_query($sql2); $total2 = mysql_num_rows($r2); echo "Total IKS-2: ".$total2; echo "<br>"; //********************************************************************************************** //********************************************************************************************** $sql3 = ("SELECT * FROM dia WHERE status = 'A' AND planejador = 'IKS-1' "); $r3 = mysql_query($sql3); $total3 = mysql_num_rows($r3); echo "Total IKS-3: ".$total3; echo "<br>"; //********************************************************************************************** //********************************************************************************************** $sql4 = ("SELECT * FROM dia WHERE status = 'A' AND planejador = 'IKS-4' "); $r4 = mysql_query($sql4); $total4 = mysql_num_rows($r4); echo "Total IKS-4: ".$total4; echo "<br>"; //********************************************************************************************** //********************************************************************************************** $sql5 = ("SELECT * FROM dia WHERE status = 'A' AND planejador = 'IKS-5' "); $r5 = mysql_query($sql5); $total5 = mysql_num_rows($r5); echo "Total IKS-5: ".$total5; echo "<br>"; //********************************************************************************************** //********************************************************************************************** $sql6 = ("SELECT * FROM dia WHERE status = 'A' AND planejador = 'IKS-6' "); $r6 = mysql_query($sql6); $total6 = mysql_num_rows($r6); echo "Total IKS-6: ".$total6; echo "<br>"; //********************************************************************************************** //********************************************************************************************** $sql7 = ("SELECT * FROM dia WHERE status = 'A' AND planejador = 'IKS-7' "); $r7 = mysql_query($sql7); $total7 = mysql_num_rows($r7); echo "Total IKS-7: ".$total7; echo "<br>"; //**********************************************************************************************
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.