Я пытаюсь объединить две записи таблицы в одном запросе, используя синтаксис внутреннего соединения.
table one
Unique_ID | School | Paid | Balance | Date |
+---------+--------+------------- --+-------+
112 MaryGold 200 500 2/5/19
112 MaryGold 300 200 9/5/19
107 MyKids 100 500 9/5/19
107 MyKids 100 400 2/6/19
and table two
Unique_ID | School | amountperterm | Academic_Year | Term | c_Paid | c_Balance |
+---------+--------+---------------+---------------+------+--------+-----------+
112 MaryGold 700 2019 / 2020 1 500 200
107 MyKids 600 2019 / 2020 1 200 400
В таблице 1 показаны записи по каждому отдельному платежу и остатку.
во второй таблице приведены записи о сумме всех произведенных платежей и остатке
Я хочу запрос на соединение, при котором школьная запись в таблице 2 будет связана со всеми записями о платежах в таблице 1.
Я использую отчет Джаспер, чтобы распечатать все школьные записи с соответствующими счетами.
этот код работает, когда в Jtable выбирается школьная запись и нажимается кнопка print_.
int row = s_ThirdTerm.getSelectedRow();
try{
String table_click=(s_ThirdTerm.getModel().getValueAt(row,0).toString());
JasperDesign jd =JRXmlLoader.load("printOuts\\ucmasReciept.jrxml");
String sgl="select school_info.Unique_ID,school_info.School,school_info.amountperterm,school_info.Academic_Year,school_info.Term,school_info.currentallpaid,school_info.currentbalance,school_info.currentdate,school_bill_archive.Paid,\n" +
"school_bill_archive.Balance,school_bill_archive.Date from school_bill_archive INNER JOIN school_info on school_info.Term=school_bill_archive.Term and school_info.Unique_ID=school_bill_archive.Unique_ID and school_info.School='"+table_click+"'";
JRDesignQuery newQuery = new JRDesignQuery();
newQuery.setText(sgl);
jd.setQuery(newQuery);
JasperReport jr = JasperCompileManager.compileReport(jd);
JasperPrint jp = JasperFillManager.fillReport(jr,null,con);
JasperViewer.viewReport(jp,false);
}catch(Exception e){
JOptionPane.showMessageDialog(null,e);
}finally{
try{
rs.close();
pst.close();
}
catch(Exception e){
}
}
отображает выбранную школу в таблице 2 и все записи об оплате счетов из таблицы 1.
но мне нужна ситуация, когда я не выберу определенную школу, но когда я нажму на кнопку print_, должен появиться отчет о яшме с записями всех школ и соответствующими записями об оплате.
Например, если в таблице 2 5 школ, у меня должно быть 5 страниц в отчете о яшме, когда я нажимаю кнопку print_. каждая страница с информацией о школе из таблицы 2 и соответствующими платежами из таблицы 1.
это код, который я написал, но все, что он делает, это отображает только страницу с записями из первой строки таблицы 2 и всеми записями из таблицы 1.
try{
JasperDesign jd =JRXmlLoader.load("printOuts\\Reciept.jrxml");
String sgl="select school_info.Unique_ID,school_info.School,school_info.amountperterm,school_info.Academic_Year,school_info.Term,school_info.currentallpaid,school_info.currentbalance,school_info.currentdate,school_bill_archive.Paid,\n" +
"school_bill_archive.Balance,school_bill_archive.Date from school_bill_archive INNER JOIN school_info on school_info.Term=school_bill_archive.Term and school_info.Unique_ID=school_bill_archive.Unique_ID and school_info.School=school_bill_archive.School";
JRDesignQuery newQuery = new JRDesignQuery();
newQuery.setText(sgl);
jd.setQuery(newQuery);
JasperReport jr = JasperCompileManager.compileReport(jd);
JasperPrint jp = JasperFillManager.fillReport(jr,null,con);
JasperViewer.viewReport(jp,false);
}catch(Exception e){
JOptionPane.showMessageDialog(null,e);
}finally{
try{
rs.close();
pst.close();
}
catch(Exception e){
}
}