我试图使用以下查询将SQL查询生成的结果插入临时表:
SELECT *
INTO #YourTempTable
FROM
(WITH cte AS
(
SELECT
sb.case, sb.Trace, sb.Amount, sp.edge, sp.UserId,
count(*) over (partition by sp.edge) as cnt
FROM
Budget sb
JOIN
Sap sp ON sb.Trace = sp.Trace
WHERE
sb.Trace IN (SELECT Trace FROM Sap
WHERE sb.UserId in ('R5', 'HB'))
)
SELECT cte.*
FROM cte
WHERE cnt > 1
ORDER BY edge DESC;
)
Run Code Online (Sandbox Code Playgroud)
我收到错误:
消息156,级别15,状态1,行4
关键字'with'附近的语法不正确.消息319,级别15,状态1,行4
关键字'with'附近的语法不正确.如果此语句是公用表表达式,xmlnamespaces子句或更改跟踪上下文子句,则必须以分号终止先前的语句.消息102,级别15,状态1,行12
''''附近的语法不正确.
任何人都可以让我知道这件事吗?
WITH之前SELECT:
with cte as (
select sb.case, sb.Trace, sb.Amount, sp.edge, sp.UserId,
count(*) over (partition by sp.edge) as cnt
from Budget sb join
Sap sp
on sb.Trace = sp.Trace
where sb.Trace in (select Trace from Sap where sb.UserId in ('R5', 'HB'))
)
SELECT *
INTO #YourTempTable
FROM cte
WHERE cnt > 1
ORDER BY edge desc;
Run Code Online (Sandbox Code Playgroud)
作为一个说明:你的语法是由Oracle支持,而不是由其他数据库.一般来说,WITH应该在声明的最开头.
此外,子查询是不必要的.实际上,您将获得另外两个错误:子查询没有别名,并且ORDER BY子查询中不允许(除非TOP或FETCH FIRST使用).
| 归档时间: |
|
| 查看次数: |
1899 次 |
| 最近记录: |