【问题标题】:SQL SELECT Query in MS Access based on most recent date基于最近日期的 MS Access 中的 SQL SELECT 查询
【发布时间】:2018-09-07 21:29:30
【问题描述】:

我试图在 PriceFeed 表中找到高于/等于最近日期/时间 MS Access 表单中输入价格的投标价格。 我想从 Stock 表中选择与 PriceFeed 表中符号相同的股票详细信息。

用户输入文本框为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
;

【问题讨论】:

  • How to format SQL Code。把你的问题分解成更小的问题。首先获取所有股票的最新价格。 (提示:分组)。

标签: sql ms-access


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多