我正在尝试设计一个基于关系的数据库,但同时存储时间序列数据。
例如,我有一张桌子
CREATE TABLE [dbo].[Fund](
[FundID] [int] NOT NULL,
[FundName] [nvarchar](50) NULL,
[FundCurrency] [nchar](3) NOT NULL,
CONSTRAINT [PK_Fund] PRIMARY KEY CLUSTERED
)
我有另一个表来存储数据,除了第一列的名称'Dates',所有其他的都是f+fundID,例如f1001。
CREATE TABLE [dbo].[FundData](
[Dates] [datetime] NOT NULL,
[f1001] [float] NULL,
CONSTRAINT [PK_FundData] PRIMARY KEY CLUSTERED
)
我不知道这种幼稚的方式是否有效。由于它将处理的数据并不多。每日报价,最多 10 年的每日数据,最多 500 列。
但我面临的真正问题是如何创建一个 UDF 来返回一系列带日期的数据,输入 FundID 和 BeginDate 和 EndDate。或者如何创建一个存储过程来返回一个单引号,给定 FundID 和 Date。
由于 UDF 不接受动态列名,我真的不知道如何实现这一点。要么通过重新设计如何存储数据,要么通过一些聪明的方式来制作 UDF。
非常感谢您提前