在同一查询中将查询结果字段用作数据库名称

时间:2018-11-24 15:47:34

标签: sql sql-server tsql

大概是这个远景...

我有两个数据库“ Job Register”和“ Job001”。

我想检索已经开会的工作的列表,以及会议的最后一次召开时间(这取决于某个文档的最新修订版)。

已经开会的作业列表很容易,因为它们位于同一数据库中,并且具有用于此信息的特定列。然后,棘手的一点是要检索其他列,该列使用检索到的作业号加入该作业的数据库,并在这种情况下检查文档号“ DOC001”以获取其最新版本,并检索“ date_modified”。

请查看两个数据库的附件图像和所需的查询结果。

enter image description here

2 个答案:

答案 0 :(得分:0)

您的问题尚不清楚,但我认为您正在寻找

SELECT JR.JobNumber,
       JR.IsComplete,
       J.DateModified
FROM JobRegister JR INNER JOIN Job001 J
ON JR.JobNumber = J.JobNumber
WHERE DocumentRevision = 'B'; 

两个表中的JobNumber也应该是相同的数据类型。

Demo

答案 1 :(得分:-1)

SELECT JR.JobNumber,
       JR.IsComplete,
       J.DateModified
FROM JobRegister JR INNER JOIN CONCAT('Job', JR.JobNumber) J
ON JR.JobNumber = J.JobNumber
WHERE DocumentRevision = 'B';