SQL Server-在另一个表中查找派生的列并返回一个值

时间:2018-07-02 18:39:03

标签: sql sql-server

我有一个查询,该查询具有使用concat函数获得的列(PROCESS)。现在,我需要在另一张表(Table2)上的列中查找此列,然后从同一张表(表2)中返回一个值。

查询: enter image description here

“我的当前”输出将如下所示。 enter image description here

我有一个像这样的参考表。

enter image description here

我需要在“类型”(参考表)中查找“过程”(查询结果),并在“过程列”中返回“描述”(参考表)。

最终输出应如下所示 enter image description here

我无法弄清楚如何修改查询来执行此操作。请帮助。

2 个答案:

答案 0 :(得分:1)

您需要一个join。根据连接值将参考表与其他查询连接起来,您可以显示要查找的描述。

FROM #Source As s) D INNER JOIN [Reference Table] AS rt ON d.Process = rt.type

答案 1 :(得分:1)

您需要在INNER JOINSource表之间使用{em> JOIN 条件的Reference嵌套查询,如下所示:

SELECT ... -- all columns of your queries outer part
(
SELECT s.Date, s.Station, s.worktype, s.tasktype, description as process, ....
  FROM source s
  INNER JOIN reference r on ( concat(s.worktype,s.tasktype) = r.type ) 
 ) D
 GROUP BY D.date, D.station, D.worktype, D.accountno;

SQL Fiddle Demo