0
我想用CTE創建一個臨時結果集。然後我想創建另一個使用第一個結果集作爲輸入的臨時結果集。這可能嗎?下面的代碼嘗試這樣做,但我遇到了錯誤:「無效的列名'ptask_id'」 在此先感謝。CTE - 我可以使用多個臨時結果集嗎?
;WITH act_and_proc
AS (SELECT *
FROM afm_roleprocs
WHERE role_name = 'GDI SYSTEM ADMIN'),
ptask_list AS
(SELECT ptask_id,
activity_id,
process_id,
task_file
FROM afm_ptasks pt
WHERE process_id IN (SELECT process_id
FROM act_and_proc ap
WHERE pt.process_id = ap.process_id
AND pt.activity_id = ap.activity_id
AND pt.task_type = 'WEB URL'
AND pt.security_group != 'SYS-HIDDEN'
AND pt.is_hotlist = 0)
AND process_id IN (SELECT process_id
FROM afm_processes
WHERE process_id = pt.process_id AND is_active = 1)
)
select * from ptask_list
該錯誤與CTE無關 - 這意味着表'afm_ptasks'沒有名爲'ptask_id'的列。無論如何,CTE不會創建臨時結果集。它們只是整個查詢的一個語法元素。查詢分析器將處理整個查詢並決定如何執行它 –
爲什麼不把它放在答案中,@PanagiotisKanavos –
[保持簡單以及如何在查詢中執行多個CTE](http:// stackoverflow。 com/questions/2140750 /保持簡單並且如何做到多個cte-in-a-query) – usr