Ir para conteúdo
Fórum Script Brasil

zandotc

Membros
  • Total de itens

    9
  • Registro em

  • Última visita

Sobre zandotc

zandotc's Achievements

0

Reputação

  1. Obrigado pela resposta. Refiz a estrutura do banco, gravando diretamente os valores em cada coluna.
  2. Bom Dia, Tenho 10 colunas de Siglas de Defeito, e 10 Colunas de quantidade de cada defeito, D1 = Defeito Q1 = Quantidade de Defeitos D1 D2 = Defeito Q2 = Quantidade de Defeitos D2 e assim por diante; D1 pode conter as siglas C1, C2, C3, C4 até C40 D2 pode conter as siglas C1, C2, C3, C4 até C40 D3 pode conter as siglas C1, C2, C3, C4 até C40 e assim por diante Vejam a imagem em anexo; Preciso verificar as colunas e somar todos os defeitos de cada tipo, ranqueando as 3 maiores quantidades de defeitos, como na imagem anexo. Podem me dar uma ajuda com isso. Obrigado pela atenção;
  3. zandotc

    MYSQL COUNT e IF?

    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
  4. zandotc

    MYSQL COUNT e IF?

    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.
  5. Boa Tarde, Vou tentar explicar de forma clara, caso não consigam entender por favor perguntem. Tenho uma cabela chamada "controleconserto" dentro da tabela tenho 10 colunas nomeadas motivo1 motivo2 motivo3 motivo4 motivo5 motivo6 motivo7 motivo8 motivo9 motivo10. Cada coluna dessa guarda uma valor por linha do tipo C1 C2 C3 C14 C12, etc. exemplo tabela controleconserto |-------------------------------------------------------------------------------------------------------------------------| |cliente | motivo1 | motivo2 | motivo3 | motivo4 | motivo5 | motivo6 | motivo7 | motivo8 | motivo9 | | 1 | c1 | c4 | c12 | c1 | c13 | c6 | c11 | c1 | c16 | | 1 | c16 | c16 | c1 | c8 | c2 | c5 | c10 | c2 | c3 | | 1 | c16 | c12 | c2 | c7 | c7 | c5 | c16 | c3 | c4 | |-------------------------------------------------------------------------------------------------------------------------| Eu precisaria que a query pegasse tudo que é c1 e desse um count(motivo1), count(motivo2) count(motivo3) etc. Ai ela pegaria tudo que tem nas colunas com o valor de C1 where cliente =1 Depois de contar quandos C1 tem nas colunas ele teria que somar os count SUM(count(motivo1)+count(motivo2)+count(motivo3) etc. Depois dela somar, teríamos o Resultado da soma de C1, claro isso faria com todas as colunas e daria os resultados. Exemplo: SELECT COUNT(motivo1) as Total, motivo1 as 'Motivo 1' FROM controleconserto WHERE cliente=1 GROUP BY motivo1 Total Motivo 1 3 C1 1 C12 4 C16 1 C6 3 C7 2 C8 SELECT MAX(Total) FROM (select COUNT(motivo1) as Total, motivo1 as 'Motivo 1' FROM controleconserto WHERE cliente=1 GROUP BY motivo1)as maximo MAX(Total) 4 Ai eu teria o valor 4 que seria do C16 Assim precisaria que acontecesse com todas as colunas e no final juntar os valores iguais de cada coluna e somar dando o MAX Aguardo. Obrigado. 0
  6. Boa Tarde, gostaria de pegar o número da linha onde possui o valor que preciso. SET @linha=0; SELECT (@linha:=@linha + 1) AS numerolinha, fornecedor, total FROM controleconserto numerolinha | fornecedor | total 1 fulano 320 2 ciclano 80 3 boltrano 80 ... 20 cara 70 Essa query funciona certinho porém lista todos os registro. Eu precisaria que ela listasse apenas o registro que tivesse como fornecedor o nome... exemplo: SET @linha=0; SELECT (@linha:=@linha + 1) AS numerolinha, fornecedor, total FROM controleconserto WHERE fornecedor='cara' porém ele retorna como a linha 1 e não como a 20 numerolinha | fornecedor | total 1 cara 70 Agradeço a colaboração.
  7. Bom Dia Estou a uns dias tentando achar uma solução para isto. Preciso que dentro do meu for regressivo conte $n = $n -1, porém quando chegar no 0 ele comece a contar positivos e não negativos. vejam: $mes=8; for ($i=12; $i>0;$i--){ $mes=$mes-1; echo $mes; } Saída: Mês = 8 7 6 5 4 3 2 1 0 -1 -2 -3 gostaria que fosse sem o 0 e sem os negativos: Saída: Mês = 8 7 6 5 4 3 2 1 2 3 4 5 Agradeço a colaboração.
×
×
  • Criar Novo...