【问题标题】:SQL: Give me last entry between datesSQL:给我日期之间的最后一个条目
【发布时间】:2018-01-17 05:05:04
【问题描述】:

我想要最后一个条目,我的条目位于日期之间:

    Isin             Date          Price   
______________    ____________    __________

'GB00B1YW4409'    '31.12.1999'    [688.1300]
'GB00B1YW4409'    '03.01.2000'    [688.1300]
'GB00B1YW4409'    '04.01.2000'    [690.6200]
'GB00B1YW4409'    '05.01.2000'    [666.9500]
'GB00B1YW4409'    '06.01.2000'    [650.7600]
'GB00B1YW4409'    '07.01.2000'    [663.2200]
'GB00B1YW4409'    '10.01.2000'    [694.3500]
'GB00B1YW4409'    '11.01.2000'    [683.7700]
'GB00B1YW4409'    '12.01.2000'    [675.0500]
'GB00B1YW4409'    '13.01.2000'    [664.4600]

例如,我想获得最新价格(2001 年 1 月 1 日 - 一年)。但不幸的是,1 月 1 日是假期,因此没有任何价格。所以我正在寻找下一个可用的条目(2000 年 1 月 3 日)。我的第一个想法是这样的

Select List.Price from List where List.Date ... 

有人可以帮忙吗?

【问题讨论】:

  • 这和matlab有什么关系?
  • 您使用的是哪个DBMS 产品?后格雷斯?甲骨文? “SQL”只是一种查询语言,而不是特定数据库产品的名称。
  • 我首先标记了 Matlab(已被删除),但因为这是一个“正常”查询,我想我不必提及它

标签: sql


【解决方案1】:
SELECT 
  TOP 1 List.Price
FROM
  List
WHERE
  Date >= 01.01.2000
ORDER BY
  Date

这应该返回与您要求的日期匹配的价格,如果该日期不在表格中,您应该从下一个可用日期获取价格。

【讨论】:

  • 也许你可以进一步帮助我。现在我想将这个日期与另一张桌子一起加入。类似的东西:...加入 list2 on list1.isin=list2.isin where list2.date= (last entry)
  • 在我提供建议之前,我需要查看更多关于您想要加入的内容的详细信息。我看到 StackOverflow 上有很多关于 SQL 连接的已回答问题,并且还有很多关于该主题的其他网站教程。如果这些都对您没有帮助,也许您可​​以输入另一个问题,其中包含有关您正在寻找的内容的更多详细信息。
猜你喜欢
  • 2018-10-05
  • 2019-12-02
  • 1970-01-01
  • 2021-08-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多