SQL:按日期链接2个数据源

时间:2015-03-19 09:38:29

标签: sql sql-server sql-server-2012 data-linking

此页面的新手。我需要帮助Microsoft SQL中的数据链接。我有两个数据表都是相当大的数据集,我需要以某种方式链接。我的第一个数据集显示了一个组的开始和结束日期/时间,并具有唯一的ID。第二组确实有唯一的ID,但它不能链接到第一组。我可以链接的唯一字段是日期/时间&组。我试图让第二个表显示第一个表中的ID,以便我可以加入数据集。它是一次更新,不需要刷新。

我需要基于以下链接:

如果ds2.Time在ds1.Start_Time和ds1.End时间之间,那么ds1.ID

ds =数据源

数据来源1

ID  Start Date  End Date    Start Time  End Time    Group
1   12/01/2010  12/01/2010  12:45        13:10        A
2   12/01/2010  12/01/2010  12:00        14:55        B
3   12/01/2010  12/01/2010  12:55        13:45        C
4   12/01/2010  12/01/2010  13:55        14:25        A
5   12/01/2010  12/01/2010  15:02        15:55        B

数据源2

Date          Time  Group   Total   ID
12/01/2010  12:45   A         13    ?
12/01/2010  12:46   A         15    ?
12/01/2010  12:47   A          8    ?
12/01/2010  12:48   B         10    ?
12/01/2010  13:55   B          8    ?
12/01/2010  13:57   B          9    ?
12/01/2010  13:58   B         10    ?
12/01/2010  13:59   B         12    ?
12/01/2010  14:01   B         14    ?

正如我发布的那样,如果无法在页面上找到,那么我会发布最终答案。

1 个答案:

答案 0 :(得分:0)

您可以JOIN Table1 Table2 表,并在 Table2 表上使用UPDATE

UPDATE Table2
SET Id = (
          SELECT Id
          FROM Table1 t1 
          JOIN Table2 t2
             ON (t1.Group = t2.Group) AND
                (t1.StartDate = t2.Date) AND
                (t1.StartTime = t2.Time)
          )

或类似的东西:

UPDATE Table2 t2
JOIN Table1 t1
ON (t1.Group = t2.Group) AND
   (t1.StartDate = t2.Date) 
SET t2.Id = t1.Id
WHERE t2.time BETWEEN t1.StartTime AND t1.EndTime