Jump to content
Fórum Script Brasil
  • 0

(Resolvido) Converter linha em coluna MYSQL


rbiaggio
 Share

Question

Pessoal, tenho uma tabela e preciso que um dos campos, o "status_disco" que pode ter o conteúdo de "Critical" ou "Warning", seja convertido em coluna, uma para critico outra para warning. Alguém consegue me ajudar a fazer isso? 

Banco mysql

tabela: tb_disco_windows
Colunas em anexo.

 

forum.png

Link to comment
Share on other sites

6 answers to this question

Recommended Posts

  • 0

Leia sobre pivot table aqui no forum.

No seu caso crie um campo IF( status_disco = "Critical", "X", "") AS Critical; e outro campo IF( status_disco = " Warning ", "X", "") AS  Warning

Link to comment
Share on other sites

  • 0

Denis,

Eu tenho lido sobre PIVOT, procurei no google mas não consegue aplicar a minha necessidade.

 

Quanto ao IF. O meu problema é que eu tenho no campo nome_disco, dois registros iguais, Disco D,  por exemplo, e no campo status_disco, eu tenho um Warning e um Critical para o mesmo disco D, ou seja, meu retorno é de duas linhas com o campo nome_disco iguais, disco D, porém status_disco tem um Critical e um Warning. Eu preciso que o retorno da query me traga somente uma linha Disco D: e duas colunas Critical e Warning.

Obrigado pela resposta.

 

Link to comment
Share on other sites

  • 0

Experimente:


SELECT nome_disco, SUM(IF( status_disco = "Critical", 1, )) AS Critical, SUM(IF( status_disco = " Warning", 1, )) AS  Warning 
FROM  tb_disco_windows
GROUP BY nome_disco

 

 

Link to comment
Share on other sites

  • 0

Muito obrigado, exatamente isso que precisava.

SELECT nome_disco, SUM(IF( status_disco = "Critical", 1, "" )) AS Critical, SUM(IF( status_disco = "Warning", 1, "")) AS  Warning 
FROM  tb_disco_windows WHERE (`id_solic_disco_windows` = '3' AND hostname_server='ndcingmgm001') GROUP BY nome_disco

 

Como resolvo o tópico?

Link to comment
Share on other sites

  • 0

Quando insiro a query no código PHP dá erro. Acredito que com o SUM eu tenha que colocar algum outro parametro para funcionar.

 

$query_windows = "SELECT nome_monitor_infra,  SUM(IF( status_monitor_infra = "Critical", 1, "" )) AS Critical, SUM(IF( status_monitor_infra = "Warning", 1, "")) AS  Warningfrom tb_infra_windows WHERE (`id_solic_infra_windows` = '". $id_solic ."' AND hostname_server='". $hostname ."') GROUP BY nome_monitor_infra";
$result_windows = mysql_query($query_windows, $conecta) or die(mysql_error());
$rows_query_windows = mysql_fetch_assoc($result_windows);
$totalRows_query_windows = mysql_num_rows($result_windows);

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
 Share



  • Forum Statistics

    • Total Topics
      149.9k
    • Total Posts
      646.8k
×
×
  • Create New...