0

我希望能够基于表 2 中的多个列从表 1 中返回值。

表格1

ID eventDate 价格

111 2013-09-01 103

111 2013-10-04 103.5

111 2013-11-01 115

111 2013-11-02 114.5

111 2013-11-05 114

111 2013-11-09 112

112 2013-10-20 103

111 2013-10-23 103.5

111 2013-10-24 103

111 2013-10-25 103

111 2013-10-26 103

111 2013-10-27 103

ETC...

表 2 示例:

ID 开始日期结束日期

111 2013-11-01 2013-11-05

112 2013-10-23 2013-11-07

113 2013-11-02 2013-11-03

114 2013-10-15 2013-11-01

115 2013-11-02 2013-11-05

我想根据表 2 从表 1 返回结果 对于表 2 中的每一行,我想要表 1 中的以下结果...对于 ID 111,我想知道表 1 中介于表 2 之间的每个日期和价格“开始日期”和“结束日期”。我想要表 2 的每一行的此信息。如果我只关心一个 ID,我会编写一个简单的查询,例如...

从表 1 中选择 ID、eventDate、Price 其中 (ID = 111) 和 (eventDate between startDate and endDate)

这将为我提供 ID 111 所需的结果,但对于 ID 112、113 等以及每个相应的 startDate 和 endDate * ** *我需要相同的结果

请帮忙。谢谢你。

4

1 回答 1

2
SELECT t2.ID, t1.EventDate, t1.Price
  FROM dbo.Table2 AS t2
  INNER JOIN dbo.Table1 AS t1
  ON t1.ID = t2.ID
  AND t1.EventDate >= t2.StartDate
  AND t1.EventDate < DATEADD(DAY, 1, t2.EndDate);

要预先提出关于我为什么不在BETWEEN此处使用的问题/投诉,请阅读

于 2013-11-11T01:36:00.510 回答