Ajuda intervalo de data em gráfico

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