Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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 WHEREUF_Atual='BA' AND Status_Jornada ='VAZIO' AND FinalizarJornada = '1') VAZIO FROM cad_jornada WHEREUF_Atual='BA' AND Status_Jornada ='CARREGADO'
AND FinalizarJornada = '1'se
print do resultado consultado no banco .

>
Agora, JosimarNew disse:
Me passa a estrutura de tua tabela para que possa te ajudar.
Tudo em paz mano, muito obrigado pela ajuda.
Segue como solicitado .
Em tese
select Status_Jornada ,count(*)
from cad_jornada
group by Status_Jornada
>
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.
select Status_Jornada ,count(*)
from cad_jornada
where UF_Atual = 'BA' e FinalizarJornada = '1'
group by Status_Jornada
@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;>
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 .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>
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
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.
>
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 .
Me passa a estrutura de tua tabela para que possa te ajudar.