【发布时间】:2017-10-01 17:45:18
【问题描述】:
我有 2 个简单的表定义为:
CREATE TABLE [dbo].[shop](
[id] [uniqueidentifier] NOT NULL,
[name] [ntext] NOT NULL,
[brand] [ntext] NULL
)
CREATE TABLE [dbo].[shop_history](
[id] [int] NOT NULL,
[shopid] [uniqueidentifier] NOT NULL, (references shop.id)
[totalstockval] [int] NOT NULL,
[date] [datetime2](0) NOT NULL
)
有数据:
**dbo.shop**
id | name | brand
--------------------------
1 | Bow Rd | Tesco
2 | Wren Rd | Tesco
3 | Skye Rd | Safeway
**dbo.shop_history**
id | shopid | totalstockval | date
----------------------------------------------
997 | 1 | 19923031 | 2017-02-01 08:00
998 | 1 | 19323322 | 2017-02-01 08:30
999 | 1 | 19283873 | 2017-02-01 09:45
1000 | 2 | 14949321 | 2017-02-01 07:00
1001 | 2 | 12312312 | 2017-02-01 09:30
1002 | 3 | 12232344 | 2017-01-31 23:45
1003 | 3 | 12999222 | 2017-02-01 09:45
我有一整年的类似数据。我想查询数据以找到每天 09:00 之前的最新股票价值,即使那发生在前一天。
我试图实现的结果集如下所示:
shop.id | name | brand | totalstockval | date
---------------------------------------------------------------
1 | Bow Rd | Tesco | 19323322 | 2017-02-01 08:30
2 | Wren Rd | Tesco | 14949321 | 2017-02-01 07:00
3 | Skye Rd | Safeway | 12232344 | 2017-01-31 23:45
在一年中的每一天重复。如果某一天没有值行,请使用最新的可用值。
我感觉我需要一个计数表,其中包含我想要价格的每个日期(或日期时间),但我不确定查询。我怎样才能获得类似于上述示例的结果集?
【问题讨论】:
-
用您正在使用的数据库标记您的问题。
-
谢谢,我已经标记了 SQL Server
标签: sql sql-server date datetime select