Ir para conteúdo
Fórum Script Brasil
  • 0

MYSQL COUNT e IF?


zandotc

Pergunta

Boa Tarde,

 

Tenho as seguintes queries:

 

//Pega o total de produtos da familia. Ex 25

$query ="SELECT *, COUNT(familia) as total from cadastro group by familia";
$executa=mysql_query($query);
$a=mysql_fetch_array($executa);

 

//Pega o total de produtos já fabricados com base na data de retorno;
$queryb ="SELECT COUNT(familia) as pronto from cadastro where dataretorno<>'0000-00-00 00:00:00' group by familia";
$executab=mysql_query($queryb);
$b=mysql_fetch_array($executab);

 

//Pega o total de produtos em produção com base na data de retorno.

$queryc ="SELECT COUNT(familia) as producao from cadastro where dataretorno='0000-00-00 00:00:00' group by familia";
$executac=mysql_query($queryc);
$c=mysql_fetch_array($executac);

 

Problema está que ele retorna, apenas de uma família, pois não está em um while nem nada. Tentei usar um IF na consulta mas não obtive sucesso.

 

Exemplo de dados gravados:

 

familia              dataretorno                        

C2-2018       0000-00-00 00:00:00

C2-2018       2018-02-02 00:00:00

C3-2018       2018-02-03 00:00:00

C4-2018       2018-02-05 00:00:00

C5-2018       2018-02-07 00:00:00

C5-2018       2018-02-07 00:00:00

C5-2018       0000-00-00 00:00:00

 

Saida MYSQL agrupando por família

 

familia              dataretorno                   pronto           producao          total       

C2-2018       0000-00-00 00:00:00                1                       1                        2

C3-2018       2018-02-03 00:00:00                1                       0                        1

C4-2018       2018-02-05 00:00:00                1                       0                        1

C5-2018       2018-02-07 00:00:00                2                       1                        3

 

Como poderia fazer isso usando apenas uma querie, tentei com sub selects também não consegui

 

Muito obrigado pela atenção e colaboração.

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

Resolvido usando:

SELECT familia, SUM( CASE WHEN dataretorno ="0000-00-00 00:00:00" THEN 1 ELSE 0 END) AS producao, SUM( CASE WHEN dataretorno <>"0000-00-00 00:00:00" THEN 1 ELSE 0 END) AS pronto, SUM( CASE WHEN dataretorno IS NOT NULL THEN 1 ELSE 0 END) AS total FROM cadastro group by familia

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,7k
×
×
  • Criar Novo...