MS Access中的SQL SELECT查询基于最新日期

时间:2018-09-07 21:29:31

标签: sql ms-access

我试图在PriceFeed表中找到比最近日期/时间的MS Access表格中的输入价格高/高的出价。 我想从“库存”表中选择与“价格进给”表中相同的符号的库存明细。

用户输入文本框为txtMini,表单名称为findPrice。

问题在于此SQL语句仅返回一个结果-最新库存。 我想查找PriceFeed表中所有股票代码的最新价格和相关详细信息,而不仅仅是一只股票。

SELECT
    PriceFeed.StockSymbol
  , PriceFeed.DateTime
  , PriceFeed.Bid
  , Stock.StockDescription
  , StockType.TypeDescription
  , Category.CategoryDescription
  , CurrencyID.Currency
  , Stock.AvailableUnits
FROM
    PriceFeed
  , Stock
  , StockType
  , Category
  , CurrencyID
WHERE
    PriceFeed.Bid         >=[Forms]![findPrice]![txtMini]
    AND PriceFeed.DateTime =
    (SELECT MAX(PriceFeed.DateTime) FROM PriceFeed
    )
    AND PriceFeed.StockSymbol    = Stock.Symbol
    AND Stock.TypeID             = StockType.TypeID
    AND Stock.BusinessCategoryID = Category.CategoryID
    AND Stock.CurrencyID         = CurrencyID.CurrencyID
;

1 个答案:

答案 0 :(得分:0)

我猜每只股票都有其自己的“最近日期/时间”,因此您可以尝试将DateTime的WHERE条件更改为此:

PriceFeed.DateTime = (
    SELECT MAX(DateTime) FROM PriceFeed AS tmp WHERE StockSymbol = PriceFeed.StockSymbol
)