Gráfico Comparativo (Realizado x Previsto)

Bom dia,

Tenho a seguinte consulta:

SELECT
      A.ID_DEPARTAMENTO,
      (SELECT COUNT(ID_TICKET) FROM TBL_TICKET_HD WHERE ID_DEPARTAMENTO =  A.ID_DEPARTAMENTO AND MONTH(DATA_ABERTURA) = MONTH(CURDATE()) AND YEAR(DATA_ABERTURA) = YEAR(CURDATE())) AS ABERTOS,
      (SELECT COUNT(ID_TICKET) FROM TBL_TICKET_HD WHERE ID_DEPARTAMENTO =  A.ID_DEPARTAMENTO AND MONTH(DATA_ABERTURA) = MONTH(CURDATE()) AND YEAR(DATA_ABERTURA) = YEAR(CURDATE()) AND ID_STATUS IN (5,6)) AS RESOLVIDOS
FROM
      TBL_TICKET_HD A
WHERE
     MONTH(DATA_ABERTURA) = MONTH(CURDATE()) AND 
     YEAR(DATA_ABERTURA) = YEAR(CURDATE())
GROUP BY
      A.ID_DEPARTAMENTO

E preciso que o gráfico fique exatamente assim:

Como no tópico do pessanha http://www.scriptcase.com.br/forum/index.php/topic,7801.0.html.

Quando gero o gráfico, saem separados, saí um gráfico para registro, outro para abertos e outro para resolvidos.

Tem como alguém me dar uma ajuda?

Leandro Auler

Leandro,

Ao invés de usar sub-select, use UNION nos selects.

Kleyber,

Bom dia,

Usar UNION mesmo?

Ele só está trazendo o resultado do primeiro select:

SELECT
      ID_DEPARTAMENTO,
      COUNT(*) AS ABERTOS      
FROM
      TBL_TICKET_HD 
WHERE
	 MONTH(DATA_ABERTURA) = MONTH('2014-01-01') AND 
     YEAR(DATA_ABERTURA) = YEAR('2014-01-01') AND 
     ID_DEPARTAMENTO = 9
UNION
SELECT
      ID_DEPARTAMENTO,
      COUNT(*) AS ABERTOS      
FROM
      TBL_TICKET_HD 
WHERE
	 MONTH(DATA_ABERTURA) = MONTH('2014-01-01') AND 
     YEAR(DATA_ABERTURA) = YEAR('2014-01-01') AND 
     ID_DEPARTAMENTO = 9 AND 
     ID_STATUS = 5

Resultado do select:
[table]
[tr]
[td]ID_DEPARTAMENTO[/td]
[td]ABERTOS[/td]
[/tr]
[tr]
[td]9[/td]
[td]5[/td]
[/tr]
[/table]

Quando deveria ser:

[table]
[tr]
[td]ID_DEPARTAMENTO[/td]
[td]ABERTOS[/td]
[td]RESOLVIDOS[/td]
[/tr]
[tr]
[td]9[/td]
[td]5[/td]
[td]4[/td]
[/tr]
[/table]

Att,

Leandro

Galera,

Cansei de bater cabeça usando os gráficos do SC. Usei o google charts e resolvi os meus problemas com gráficos.

Leandro Auler

Leandro,

Existem diversos tópicos a respeito do Google Charts, mas tem algo simples que vc possa nos disponibilizar?:wink:

Jorge,

Com certeza, segue código simples para implementação do gráfico, em dois arquivos getDados.php e index.php:

getDados.php

[code]<?php
$con = mysql_connect(‘localhost’, ‘xxxx’, ‘xxxx’) or die(‘Erro ao Conectar ao Servidor’);

mysql_select_db(‘sysrac’, $con) or die(‘Erro ao Conectar ao Banco’);

$mes_a = date(‘m’);
$ano_a = date(‘Y’);
$dia_a = date(‘Y-m-d’);

//Consulta SQL
$query = mysql_query(“SELECT
A.ID_DEPARTAMENTO AS DEPT,
D.SIGLA_DEPARTAMENTO AS SIGLA,
(SELECT COUNT() FROM TBL_TICKET_HD WHERE ID_DEPARTAMENTO = A.ID_DEPARTAMENTO AND MONTH(DATA_ABERTURA) = MONTH(’$dia_a’) AND YEAR(DATA_ABERTURA) = YEAR(’$dia_a’)) AS ABERTOS,
(SELECT COUNT(
) FROM TBL_TICKET_HD WHERE ID_DEPARTAMENTO = A.ID_DEPARTAMENTO AND MONTH(DATA_ABERTURA) = MONTH(’$dia_a’) AND YEAR(DATA_ABERTURA) = YEAR(’$dia_a’) AND ID_STATUS = ‘5’) AS RESOLVIDOS
FROM
TBL_TICKET_HD A
INNER JOIN TBL_TICKET_DEPARTAMENTO_HD D
ON D.ID_DEPARTAMENTO = A.ID_DEPARTAMENTO
WHERE
MONTH(A.DATA_ABERTURA) = MONTH(’$dia_a’) AND
YEAR(A.DATA_ABERTURA) = YEAR(’$dia_a’)
GROUP BY
DEPT”);

//Inicializando as variáveis
$table = array();
$rows = array();
$flag = true;

//Criando as colunas dentro do array
$table[‘cols’] = array(

//array(‘label’ => ‘DEPARTAMENTO’, ‘type’ => ‘string’),
array(‘label’ => ‘SIGLA’, ‘type’ => ‘string’),
array(‘label’ => ‘ABERTOS’, ‘type’ => ‘number’),
array(‘label’ => ‘RESOLVIDOS’, ‘type’ => ‘number’)
);

//Preenchendo as linhas do array auxiliar “$row” com os dados do banco
while($row = mysql_fetch_assoc($query)) {

$temp = array();
//$temp[] = array(‘v’ => (string) $row[‘DEPT’]);
$temp[] = array(‘v’ => (string) $row[‘SIGLA’]);
$temp[] = array(‘v’ => (int) $row[‘ABERTOS’]);
$temp[] = array(‘v’ => (int) $row[‘RESOLVIDOS’]);

$rows[] = array(‘c’ => $temp);
}

//Adiciona o array auxiliar “$row” como um array dentro da variavel tabela.
$table[‘rows’] = $rows;

//“json_encode” é uma função do próprio php que irá transformar o array em JSON
$jsonTable = json_encode($table);
echo $jsonTable;
?>
[/code]

index.php

[code]

Meu Gráfico
<div id="chart_div" style="width: 500px; height: 500px;"></div>
[/code]

Espero que tenha ajudado.

Leandro

Leandro,

Obrigado pela pronta resposta.

Vou adaptar a minha necessidade e depois comunico o resultado.

Leandro,

Tentei, mas sem sucesso usar o google para essa tarefa.
Mesmo pegando todo seu codigo, olhando no site do google e ainda sim não funcionou.

Consigo ver os dados gerados e formatados para json, mas não monta o gráfico.

Eu gerei um arquivo getData.php e coloquei na biblioteca do Projeto e chamei a mesma dentro de um app blank.
Foi desse jeito que você fez?

Obrigado