如何从两个不同的数据库中获取数据并在单个表中显示?

时间:2019-02-26 06:50:43

标签: sql-server reporting-services sql-server-2012 ssrs-2012

我有一个数据库A 表X 。在表X中,数据每1秒存储一次。 像

---------------------------------
      timestamp     |col1 | 
--------------------------------- 
2019-02-25 21:42:00 | 10  | 
2019-02-25 21:42:01 | 20  |
2019-02-25 21:42:02 | 12  | 
2019-02-25 21:42:03 | 0   |
2019-02-25 21:42:04 | 14  |

数据将被第二次存储,直到最后一个事件关闭。即。 2019-02-25 21:55:04

其他数据库为 B 表Y 。它存储事件数据。


      timestamp     | event|
---------------------------- 
2019-02-25 21:42:00 | On   |
2019-02-25 21:43:25 | Off  |
2019-02-25 21:46:21 | On   |
2019-02-25 21:49:03 | Off  |
2019-02-25 21:50:00 | On   |
2019-02-25 21:55:04 | Off  |

所以我只需要从表X中获取On和Off事件的数据。并在SSRS报告中显示它。

预期结果:

      timestamp     |col1|
---------------------------- 
2019-02-25 21:42:00 | 10 |
2019-02-25 21:43:25 | 5  |
2019-02-25 21:46:21 | 13 |
2019-02-25 21:49:03 | 9  |
2019-02-25 21:50:00 | 17 |
2019-02-25 21:55:04 | 8  |

如何使用单个SQL查询执行此操作?

1 个答案:

答案 0 :(得分:1)

在我看来,您只想在这2个表之间进行简单的连接

SELECT y.timestamp, x.col1
FROM   B.dbo.TableY y
       INNER JOIN A.dbo.TableX x ON y.timestamp = x.timestamp