如何在单个图形上从两个不同的MySQL表生成结果

奥西里斯93

我想生成一个具有两列的图形。一个用于报价,另一个用于发票(将比较两个)。报价单和发票在两个单独的表中,分别称为quotedbinvoicedb我的问题是我只能让它生成报价。我是图形新手,所以我的问题是,如何操纵下面的编码,以便它可以显示两个图形中的数据。

这是从调用数据的代码quotedb

//declaring the type of category in the column
String text =cboQIMonth.getSelectedItem().toString();
String empno = cboEmployee.getSelectedItem().toString();
String year = cboQIYear.getSelectedItem().toString();

//connecting the database
Class.forName("com.mysql.jdbc.Driver");
Connection con = (Connection)
DriverManager.getConnection("jdbc:mysql://localhost:3306/salventri","root","password");
//select statement to retrieve data for the graph
PreparedStatement stmt = con.prepareStatement("select * from quotedb where EXTRACT(MONTH from quote_date)='" + monthnum + "' and EXTRACT(YEAR from quote_date) ='" + year + "' and username=" + empno +"");
ResultSet rs = stmt.executeQuery();
DefaultCategoryDataset ddataset = new DefaultCategoryDataset();
while (rs.next() ) 
{
    //data to be displayed on the graph 
    ddataset.setValue(rs.getInt("quote_total"),
    rs.getString("quote_number") + " by " + rs.getInt("username"),
    monthnum + " " + cboQIYear.getSelectedItem().toString());                            
}
威尔·沙克福德

如果可能,请在SQL查询中合并两个表,以便获得包含所有所需数据的单个ResultSet。

如果quote_db包含以下内容:

+----------+-------------+
| QUOTE_ID | QUOTE_TOTAL |
+----------+-------------+
| quoteA   |          90 |
| quoteB   |         190 |
| quoteC   |         290 |
| quoteD   |         390 |
+----------+-------------+

和invoice_db包含以下内容:

+------------+---------------+----------+
| INVOICE_ID | INVOICE_TOTAL | QUOTE_ID |
+------------+---------------+----------+
| invoiceA   |           100 | quoteA   |
| invoiceB   |           200 | quoteB   |
| invoiceC   |           300 | quoteC   |
| invoiceD   |           400 | quoteD   |
+------------+---------------+----------+

然后这段代码:

PreparedStatement stmt = con.prepareStatement("select * from INVOICE_DB as iv, QUOTE_DB as qt where qt.QUOTE_ID = iv.QUOTE_ID");
ResultSet rs = stmt.executeQuery();
DefaultCategoryDataset ddataset = new DefaultCategoryDataset();
while (rs.next()) {
    ddataset.setValue(rs.getInt("invoice_total"),
           "invoice_total",
           rs.getString("invoice_id"));
    ddataset.setValue(rs.getInt("quote_total"),
           "quote_total",
           rs.getString("invoice_id"));
}
JFreeChart chart = ChartFactory.createBarChart3D("Compare Invoice and Quote", "Invoice ID's", "total", ddataset);
chart.getTitle().setPaint(Color.RED);
CategoryPlot p = chart.getCategoryPlot();
p.setRangeGridlinePaint(Color.BLUE);
ChartFrame frame2 = new ChartFrame("Compare Invoice and Quote", chart);
frame2.setVisible(true);
frame2.setSize(450, 350);

会产生这种情节:

发票和报价图

如果不合理地加入他们,可以只做两个查询:

PreparedStatement stmt = con.prepareStatement("select * from INVOICE_DB");
ResultSet rs = stmt.executeQuery();
DefaultCategoryDataset ddataset = new DefaultCategoryDataset();
while (rs.next()) {
    ddataset.setValue(rs.getInt("invoice_total"),
           "invoice_total",
           rs.getString("invoice_id"));
}
stmt = con.prepareStatement("select * from QUOTE_DB");
rs = stmt.executeQuery();
while (rs.next()) {
    ddataset.setValue(rs.getInt("quote_total"),
           "quote_total",
           rs.getString("quote_id"));
}
JFreeChart chart = ChartFactory.createBarChart3D("Compare Invoice and Quote", "Invoice ID's", "total", ddataset);
chart.getTitle().setPaint(Color.RED);
CategoryPlot p = chart.getCategoryPlot();
p.setRangeGridlinePaint(Color.BLUE);
ChartFrame frame2 = new ChartFrame("Compare Invoice and Quote", chart);
frame2.setVisible(true);
frame2.setSize(450, 350);

结果图很难比较发票和报价:

在此处输入图片说明

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Sails js:如何在Sails js的单个模型中定义到两个不同数据库的两个MySQL连接?

如何在同一个表上合并两个查询以在MySQL中获得单个结果集

JPA标准查询-如何在两个表上实现联接以在单个查询中获得所需的结果

如何在Codeigniter的单个页面上从两个不同的输入添加两个图像

如何在Spark构造的流中将两个流df写入MySQL的两个不同表中?

如何在两个截然不同的图形卡上设置两个显示器?

如何在MySQL中使用子查询显示两个表的混合结果?

使用mysql从两个不同的表中获取结果

我如何在mysql中加入两个不同的表

MYSQL将来自两个不同表的两个不同列连接为单个列

Mysql-如何在where子句中的不同表的两个字段上添加

如何在MySQL中比较表的两个不同行

我如何从两个MySql表中获取结果

MYSQL-如何从两个表中查找结果?

在两个表上获取不同的列名MySQL

从两个不同的表中获取结果并显示为单个结果

来自两个表的MySQL单个结果

减少单个图形上两个图之间的间距

如何在单个存储过程中合并两个不同的 SQL Server 2012 数据库表?

如何通过mysql中的单个过程更新两个不同数据库中存在的两个不同表的记录?

如何在mysql中加入两个表,但两者之间的日期不同?

如何在单个图形上绘制两个线性方程的图形

在 MySQL 中,如何从两个不同的表中选择 *?

如何加入两个mysql状态不同的表

如何在列的不同值上连接两个表?

MYSQL - 如何在同一个表上的两个不同行上减去两列?

SQL如何在两个不同的列上使用两个不同的条件带来两个结果

如何在具有相同列名的两个不同表上搜索相同数据

如何在单个表中并行显示两个不同的数组,如 Php 中的 Left 和 Right