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

Consulta com cálulo por tipo de status, preciso de ajuda


Tchello

Pergunta

Tenho a segunite tabela:

+------------+--------------+------+-----+---------+-------+

| Field | Type | Null | Key | Default | Extra |

+------------+--------------+------+-----+---------+-------+

| un | varchar(100) | YES | | NULL | |

| data | date | YES | | NULL | |

| tecnico | varchar(150) | YES | | NULL | |

| status | varchar(100) | YES | | NULL | |

| hora | time | NO | | | |

| referencia | varchar(100) | YES | | NULL | |

| duracao | varchar(10) | YES | | NULL | |

+------------+--------------+------+-----+---------+-------+

Onde faço a seguinte consulta:

mysql> SELECT Tecnico, SUM(Deslocamento) AS Deslocamento, SUM(Logado) Logado FROM (SELECT tecnico AS Tecnico, (CASE WHEN status like '%DESLOCAMENTO%' THEN 1 END) AS Deslocamento, (CASE WHEN status like '%logado%' THEN 1 END) AS Logado FROM status_tecnico) AS subQ GROUP BY Tecnico;

e Retorna:

+-------------------------------------------+--------------+--------+

| Tecnico | Deslocamento | Logado |

+-------------------------------------------+--------------+--------+

| N0115439 ADRIANO PEQUENO ALVEZ | 3 | 2 |

| N0120159 ANDRE CUNHA DE OLIVEIRA | 4 | 1 |

| N0120654 JAILSON BRITO | 10 | 15 |

| N0120757 MAURILIO ROSA | 7 | 8 |

| N0120850 FABIO LUIZ BONIFACIO | 10 | 4 |

| N0120953 MARCUS VINICIUS SANCHES RIBEIRO | 13 | 6 |

| N0121050 VINICIUS HELDER OGIDIO SAKUMA | 8 | 6 |

| N0121153 JOAO PAULO MOREIRA ANTUNES | 3 | 2 |

| N0121256 RONATHAN CORREA | 6 | 8 |

| N0121359 MARCOS ROBERTO RIBEIRO | 9 | 8 |

| N0121452 EDUARDO HENRIQUE GUMIERI MARQUES | 11 | 6 |

| N0121555 GABRIEL HENRIQUE DELATTRE | 4 | 2 |

| N0121658 WALTER STARKOWSKI | 5 | 2 |

| N0121751 DIEGO ALONSO OTTO | 3 | 4 |

| N0121854 DIOGO GONCALVES VASSAO | 4 | 6 |

| N0121957 EDUARDO FERREIRA DE ALMEIDA | 8 | 4 |

+-------------------------------------------+--------------+--------+

Onde mostra a contagem das linhas da tabela, porem eu preciso que me retorne a soma da coluna 'duracao' (que são os minutos) por tipo de status.

Conforme exemplo:

Na tabela:

| Tecnico | Status | Duracao |

| N0115439 ADRIANO PEQUENO ALVEZ | Deslocamento | 10 |

| N0115439 ADRIANO PEQUENO ALVEZ | Deslocamento | 20 |

| N0115439 ADRIANO PEQUENO ALVEZ | Deslocamento | 10 |

| N0115439 ADRIANO PEQUENO ALVEZ | Logado | 35 |

| N0115439 ADRIANO PEQUENO ALVEZ | Logado | 50 |

| N0115439 ADRIANO PEQUENO ALVEZ | Logado | 15 |

Preciso que print:

| Tecnico | Deslocamento | Logado |

+-------------------------------------------+--------------+--------+

| N0115439 ADRIANO PEQUENO ALVEZ | 40 | 100 |

Alguém pode me dar uma luz?

Desde já agradeço a colaboração

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0

Oi,'Tchello'

Tenho a segunite tabela:

+------------+--------------+------+-----+---------+-------+

| Field | Type | Null | Key | Default | Extra |

+------------+--------------+------+-----+---------+-------+

| un | varchar(100) | YES | | NULL | |

| data | date | YES | | NULL | |

| tecnico | varchar(150) | YES | | NULL | |

| status | varchar(100) | YES | | NULL | |

| hora | time | NO | | | |

| referencia | varchar(100) | YES | | NULL | |

| duracao | varchar(10) | YES | | NULL | |

+------------+--------------+------+-----+---------+-------+

...

---, porem eu preciso que me retorne a soma da coluna 'duracao' (que são os minutos) por tipo de status.

...

Conforme exemplo:

Na tabela:

| Tecnico | Status | Duracao |

| N0115439 ADRIANO PEQUENO ALVEZ | Deslocamento | 10 |

| N0115439 ADRIANO PEQUENO ALVEZ | Deslocamento | 20 |

| N0115439 ADRIANO PEQUENO ALVEZ | Deslocamento | 10 |

| N0115439 ADRIANO PEQUENO ALVEZ | Logado | 35 |

| N0115439 ADRIANO PEQUENO ALVEZ | Logado | 50 |

| N0115439 ADRIANO PEQUENO ALVEZ | Logado | 15 |

Preciso que print:

| Tecnico | Deslocamento | Logado |

+-------------------------------------------+--------------+--------+

| N0115439 ADRIANO PEQUENO ALVEZ | 40 | 100 |

Alguém pode me dar uma luz?

...

É só usar a função sum no campo duração. O MySQl converte automaticamente de varchar para integer ou double.

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.


  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...