这将是一个很长的问题,所以我很抱歉。我有一个搜索,我可以找到任何符合我所遇到的错误的账单。
我目前需要弄清楚如何连接两个CTE,这两个CTE都被转动以允许将数据缝合回表中。
不幸的是,由于数据必须在其原始设计中进行维护以用于审计目的,因此我无法更新表格所需的正确格式。
目前CTES是
CTE1文件:
CTE2字段:
我们的想法是在CTE和2上的ID字段上加入 但是我正在努力让联合工作。
加入逻辑的结构
WITH CTE1 as
(
** CTE QUERY **
),
CTE2 AS
(
** CTE QUERY **
)
Select
*
FROM
CTE1
JOIN CTE2 on CTE1.id = CTE2.id
我认为这可能是由于用于将值与表格分离的复杂CTE所致。 CTE与之前发布的帖子(Splitting Strings with Regular Terms to Columns)非常相似,数据以(将包含在下方)
预期回报
感谢您的帮助。此外,如果您需要其他信息,我将包括。
目前我没有收到任何收到以下错误消息的内容
Msg 319, Level 15, State 1, Line 61
Incorrect syntax near the keyword 'with'. If this statement is a common table expression, an xmlnamespaces clause or a change tracking context clause, the previous statement must be terminated with a semicolon.
答案 0 :(得分:2)
您的查询语法不正确。
必须是这样的:
WITH
CTE1 AS
(
SELECT ...
FROM ...
)
,CTE2 AS
(
SELECT ...
FROM ...
)
,CTE3 AS
(
SELECT ...
FROM ...
)
,CTE4 AS
(
SELECT ...
FROM ...
)
SELECT ...
FROM ...
;
但你有这样的事情:
WITH
CTE1 AS
(
SELECT ...
FROM ...
)
SELECT ...
FROM ...
,CTE2 AS
(
SELECT ...
FROM ...
)
SELECT ...
FROM ...
SELECT ...
FROM ...
;
我希望你能看到差异。
WITH
应遵循几个CTE,然后是单个最终SELECT
。您无法在查询中间使用独立的SELECT
,而无需将其包装到CTE中。
答案 1 :(得分:0)
我想你应该从那开始; WITH 你错过了&#39 ;;'可能是一个问题