我有一个名为Store_Data的数据库表,我在JTable中显示了三列。
以下是专栏:
NUMBERS
AMOUNT
DATE
如何在jtable中显示其他列?缺少其他列
我设法使用此SQL命令“SELECT NUMBERS,SUM(AMOUNT)FROM Store_Data GROUP BY NUMBERS”获取组合值,并且我在JTable中显示它。
但是,在JTable中我只看到列NUMBERS和另一列显示AMOUNT值的所有总和。我没有在Jtable中看到其他列。
这是我的代码,
private JTable showRecords(Connection con)
{
try
{
column.clear();
data.clear();
_stmt = con.createStatement();
//String getColumn = "SELECT * FROM APP.NYPMTRIPLESTRAIGHT";
/*this is only a test*/
String test = "SELECT NUMBERS, SUM(AMOUNT) FROM Store_Data GROUP BY NUMBERS";
ResultSet rs = _stmt.executeQuery(test);
//this will collect the data from the database
ResultSetMetaData metaData = rs.getMetaData();
//this will count all the columns from
int column_count = metaData.getColumnCount();
for(int j = 1; j <= column_count; j++)
{
column.add(metaData.getColumnName(j));
}
while(rs.next())
{
Vector<Object> vector = new Vector<Object>();
for(int i = 1; i <= column_count; i++)
{
vector.add(rs.getObject(i));
}
data.add(vector);
}
_records = new JTable(data, column);
return _records;
} catch (SQLException ex)
{
JOptionPane.showMessageDialog(null, ex.getMessage());
}
return _records;
}
注意:我知道使用Vector是错误的。我只是用它进行测试。
答案 0 :(得分:1)
您的查询汇总了AMOUNT的所有值,并使用Group by子句显示总和。
分组依据将根据所使用的函数将类似的值分组到一个实体中。 [&#34;和&#34;在你的情况下]。
您需要从数据库中获取数字和金额
SELECT NUMBERS, AMOUNT FROM APP.NYPMTRIPLESTRAIGHT;
然后在JTable中显示结果集数据。
答案 1 :(得分:0)
试试这个:
SELECT
t1.NUMBERS,
CONCAT(YEAR(T1.DATE) , '-' , MONTH(t1.DATE) , '-' ,DAY(t1.DATE)) as DATE,
SUM(AMOUNT) AS AMOUNT
FROM table1 t1
GROUP BY 1, 2
这里有sqlfiddle