我正在使用 java、eclipse 和 JDBC。
我有 3 个表(company
, priceVolume
, dividend
),其中priceVolume
包含一个名为 transdate 的字符串(股票值的日期分为几个不同的类别,即 openValue、CloseValue、averageValue...)。在我所有的表格中,主键是Ticker
(公司的股票代码)。
我还有一个名为 Industry 的公司属性,它告诉我股票来自哪个行业。
我有几天的时间,例如其中一个是 09.25.2012 到 02.28.2012,如果公司在选定的行业中,我想从 priceVolume 中获取值。
我有这个查询,我不知道如何用 WHERE 子句来给我这个跨度,只有这个跨度。如果类型是日期类型,我想我会知道如何表达它。然而,目前,作为一个字符串,我不知道。我也无法控制数据库,只是从中读取。
ResultSet rsTickers = stat.executeQuery("SELECT Ticker, OpenValue, CloseValue,
TransDate FROM company NATURAL JOIN pricevolume WHERE industry = " + GivenIndustry + "
GROUP BY ticker");
我目前设置了我的程序,以便它只为我提供与给定行业匹配的行业的所有行,我只是在我的程序中对它们进行排序(我丢弃了所有不在跨度中的行)。有效,但我觉得它真的无效。所以现在我想将我的查询限制为符合我标准的 transDates。
我只是想看看如何做得更好。