Estou criando um relatório com gráfico no ireport, gostaria de mostrasse o total de produtos em um determinado tempo quando é no mesmo ano eu consigo mas se eu quiser por exemplo de 11/2011 a 02/2012 não consigo. Segue consulta sql que consigo fazer do mesmo ano que poderia mudar para dar certo , ja criei um parametro ano2
SELECT MONTH(p.data_inicio) as mes,
YEAR(data) as ano,
COUNT(*) as total
FROM produtos
GROUP BY MONTH(data)
HAVING ano=$P{ano1} AND mes BETWEEN $P{mes1} AND $P{mes2}
podes fazer algo assim:
SELECT COUNT(*) as cont,
TO_CHAR(data, 'MM/YYYY'),
TO_CHAR(data, 'YYYYMM')
FROM produtos
WHERE data BETWEEN TO_DATE('03/2011', 'MM/YYYY') AND TO_DATE('02/2012', 'MM/YYYY')
GROUP BY TO_CHAR(data, 'MM/YYYY'), TO_CHAR(data, 'YYYYMM')
order by 3
Avila
Deu esse erro no mysql
#1305 - FUNCTION madi.TO_CHAR does not exist
Fiz esta query no ORACLE…não tenho mysql aqui no serviço, mas pesquisando na internet acho que no lugar do TO_CHAR tem que usar DATE_FORMAT(campo , '%d/%m/%Y)
Avila
No mysql funcionou, fiz assim problema agora ta na hora de passar pra coordenada do graficoSELECT COUNT(*) AS total, DATE_FORMAT(data,'%Y-%m') as mes
FROM produtos
WHERE data BETWEEN STR_TO_DATE('10/2011','%m/%Y')
AND STR_TO_DATE('02/2012','%m/%Y')
GROUP BY DATE_FORMAT(data,'%Y-%m')
qual problemas estás tendo em popular no gráfico os valores?
não mexo com gráficos no IReport a um tempinho mas posso dar uma olhada aqui…
Avila
Eu que tava errando na hora de passar a coordenada, deu certo valeu pela ajuda