Запрос SQL SELECT в MS Access, основанный на самой последней дате - PullRequest
0 голосов
/ 08 сентября 2018

Я пытаюсь найти цены Bid в таблице 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
;

1 Ответ

0 голосов
/ 09 сентября 2018

Я полагаю, что у каждой акции есть своя "самая последняя дата / время", поэтому вы можете попытаться изменить условие WHERE для DateTime на следующее:

PriceFeed.DateTime = (
    SELECT MAX(DateTime) FROM PriceFeed AS tmp WHERE StockSymbol = PriceFeed.StockSymbol
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...