【发布时间】:2015-03-13 19:39:23
【问题描述】:
以下是我的 CTE:
;WITH CTE AS
(SELECT O.*, E.Num, E.Amount
FROM OData O
INNER JOIN Equip E
ON O.Name = E.Name)
SELECT * FROM CTE -- gives results I want to join to
以下是我想要从SELECT 查询的查询(并且仅将这个SELECT 语句用于我的查询结果:
SELECT
MU.Type
,MU.Num
,MU.MTBUR
,MF.MTBF
,MU.Hours
,MF.Hours
FROM
MUType_Stage MU
INNER JOIN
MFType_Stage MF
ON
MU.Type = MF.Type
AND
MU.Num = MF.Num
-- 需要在这里做JOIN到CTE
INNER JOIN
Status_STAGE S
ON
MU.Nu = S.Part
LEFT OUTER JOIN
RCN N
ON
N.Name = R.Part
LEFT OUTER JOIN
Repair RR
ON
R.ACSS_Name = RR.Name
所以基本上我需要JOIN 到SELECT 查询中的CTE 我想要结果。
OR ALTERNATIVELY 使用此 select 语句加入 CTE,但仅加入第二个 select 语句中的选定列
【问题讨论】:
-
您已将您的 CTE 命名为“CTE”(这不是很具描述性)...所以只需在您需要加入的任何列上加入 CTE。从这个例子中根本不清楚这些列是什么,但大概你知道。实际上,我不确定您的问题或疑问是什么?你说“需要在这里加入 CTE”......所以......做吗?我错过了什么?只需从 CTE 块中取出“SELECT * FROM CTE”,然后在您指定的位置添加 JOIN CTE。
标签: sql-server join common-table-expression