Tenho uma consuta no BD que precisa utilizar a funcao de variavel do MySQL, Vou postar ela abaixo:
SET @num = -1;
SELECT horario.hora AS hora, horario2.acessos AS acessos, course.shortname AS curso
FROM course, (
SELECT HOUR( DATE_ADD( ‘2005-05-05 00:00:00’, INTERVAL @num := @num+1 HOUR ) ) AS hora
FROM log
WHERE DATE_ADD( ‘2009-05-05 00:00:00’, INTERVAL @num HOUR ) <= ‘2009-05-05 22:00:00’
) horario
LEFT JOIN (
SELECT FROM_UNIXTIME( log.time, ‘%H’ ) AS hora, COUNT( FROM_UNIXTIME( log.time, ‘%H’ ) ) AS acessos
FROM log
WHERE log.course = 143
AND to_days( FROM_UNIXTIME( log.time, ‘%Y-%m-%d’ ) ) = to_days(‘2009-05-05’)
GROUP BY hora
) horario2
ON horario.hora = horario2.hora
WHERE course.id = 143
Eu faço essa consulta no phpmyadmin e funciona certinho do jeito que eu quero, mas por causa do parametro SET @num = -1; o iReport nem compila, acusa erro nesta parte…
Se alguem puder me ajudar! =)
Até!!
Pq assim que o MySQL fizer a primeira consulta ele vai incrementar 1, ficando INTERVAL 0 HOUR, aí assim a hora 00:00:00 vai ser a primeira a ser incluida…
mas enfim… o problema não é esse… e sim o iReport… ele não aceita essa declaração de SET @num=-1; antes do SELECT
(Detalhe: já tentei colocar outros valores ao invés de -1 só de teste e não deu mesmo)
realmente achei que fosse por causa do -1. O mysql é meio injuado com números negativos.
que erro que tá dando posta ae…
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘SELECT horario.hora AS hora, horario2.acessos AS acessos, mdl_course.shortname A’ at line 2
No caso… eu acho que o problema é que o iReport deve ter algum tipo de analisador ali que não deixa usar ;
Talvez para evitar que a pessoa coloque duas consultas seguidas ou coisa assim…
Já tentei de todas as maneiras e parece que o iReport não vai aceitar esse negócio de variável do MySQL msm… =/
kra, pode ser as bibliotecas .jar q vc ta usando.
qual é a versão do ireport q vc tá usando?
Então kra… isso tbm com ctza n é, pois estou utilizando o ultimo iReport. O iReport 3.7.0
eu nem estou gerando o relatorio por Java ainda não… estou executando só no preview do iReport msm, e como estou usando a ultima versao n tem como ser isso…
o seu banco tá com datetime? O formato seria 2010-01-01 12:00:00… exemplo.
tem que usar date separado de time pra fazer a consulta, é mais fácil.
desse jeito tem que adicionar data e hora ao mesmo tempo, mesma coisa pra consulta. Tem que consultar data e hora ao mesmo tempo. Talvez seja isso!
Entao… eu to consultando data e hora sim… o mais estranho mesmo é que a consulta funciona no phpmyadmin, entao com ctza é problema no iReport msm…
eh kra, tenta instalar uma outra versão do ireport ou desinstalar e instalar a mesma!