我正在使用ms access DB。我需要按日期获得销售。 这是我的表格规范:
BILL_NO DATE SALE
1 8/30/2010 1000
2 8/30/2010 2000
3 8/31/2010 3000
4 8/31/2010 2000
如果我想要8/31/2010的销售,它应该返回5000。
我在DB中使用java.sql.Date对象插入了Date值。
答案 0 :(得分:2)
注意,DATE
在MS Access中应为reserved keyword。您需要使用大括号指定它。此外,您还希望使用SimpleDateFormat
将人类可读的日期字符串转换为完整的java.util.Date
对象,然后您可以构建java.sql.Date
,然后可以在其中设置PreparedStatement
{{3}}通常的方式。
这是一个启动:
String sql = "SELECT SUM(SALE) as TOTAL_SALE FROM tbl WHERE [DATE] = ? GROUP BY [DATE]";
java.util.Date date = new SimpleDateFormat("MM/dd/yyyy").parse("8/31/2010");
Connection connection = null;
PreparedStatement statement = null;
ResultSet resultSet = null;
int totalSale = 0;
try {
connection = database.getConnection();
statement = connection.prepareStatement(sql);
statement.setDate(new java.sql.Date(date.getTime());
resultSet = statement.executeQuery();
if (resultSet.next()) {
totalSale = resultSet.getInt("TOTAL_SALE");
}
} finally {
close(connection, statement, resultSet);
}
答案 1 :(得分:0)
select
sum(SALE) as TOTAL_SALE
from
tbl
where
DATE='8/31/2010'
group by
DATE
答案 2 :(得分:0)
Select sum(SALE) from [your table name] where Format([DATE],"mm/dd/yyyy")='08/30/2010';