В моем проекте я хочу показать в круговой диаграмме, сколько учреждений каждый сотрудник зарегистрирован в системе. Таблица учреждений содержит внешний ключ с идентификатором сотрудника, который зарегистрировал учреждение, поэтому в каждом учреждении есть связанный с ним сотрудник.Как создать круговую диаграмму, отображающую количество чего-либо зарегистрированного каждым человеком?
я построил следующий код, но не может идти дальше:
//etc
String query = "SELECT i.ins_id, f.fun_nome FROM instituicao i " +
"JOIN funcionario f " +
"ON(f.fun_id = i.ins_fun_id)";
PreparedStatement stmt = ConexaoDAO.con.prepareStatement(query,
ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_READ_ONLY);
ResultSet rs = stmt.executeQuery();
while(rs.next()) {
total = rs.getInt(1);
}
DefaultPieDataset pieDataset = new DefaultPieDataset();
for(VFuncionarioVO vo : lista) {
//pieDataset.setValue(vo.getNome(),);
}
//etc
Я попытался с помощью GROUP BY в запросе, но это не решило проблему.
EDIT: на самом деле, используя инструкцию GROUP BY, необходимо выполнить эту работу. Прочтите принятый ответ и его комментарии.
Спасибо! Я попытаюсь использовать его и опубликовать результат позже. – rsb2097
Большое спасибо! Теперь он работает, но мне пришлось немного изменить свой SQL-запрос, поскольку метод setValue из JDBCPieDataset сначала принимает строку String, а затем числовое значение, поэтому: Строковый запрос = «SELECT f.fun_nome, COUNT (i.ins_id) FROM instituicao i JOIN funcionario f ON (f.fun_id = i.ins_fun_id) GROUP BY f.fun_nome "; – rsb2097
Кроме того, перед этим.add (новый ChartPanel (диаграмма)) я должен был отобразить необработанные значения в диаграмме (а не процент, показанный всплывающей подсказкой): диаграмма PiePlot plot = (PiePlot) .getPlot(); Генератор PieSectionLabelGenerator = новый StandardPieSectionLabelGenerator («{0} = {1}», новый DecimalFormat («0»), новый DecimalFormat («0»)); plot.setLabelGenerator (генератор); – rsb2097