2015-11-11 57 views
0

匹配的元素數我有以下幾點:的Oracle SQL - 與條款列名數量不選擇列表

WITH Course_Skill(c_code, skillcode) AS (
    SELECT c_code, skillcode 
    FROM course NATURAL JOIN taughtin), 
CourseSet_Skill(csetID, skillcode) AS (
    SELECT csetID, skillcode 
    FROM CourseSet CSet 
    JOIN Course_Skill CS ON CSet.c_code1=CS.c_code 
UNION 
    SELECT csetID, skillcode 
    FROM CourseSet CSet 
    JOIN Course_Skill CS ON CSet.c_code2=CS.c_code 
UNION 
    SELECT csetID, skillcode 
    FROM CourseSet CSet 
    JOIN Course_Skill CS ON CSet.c_code3=CS.c_code 
), 
/* more stuff */ 

我收到以下錯誤:

ORA-32038: number of WITH clause column names does not match number of elements in select list 

任何人都可以解釋爲什麼發生此錯誤?錯誤的位置被聲明爲發生在CourseSet_SkillWITH子句之後的第一個FROM子句中。 CourseSet_Skill被定義爲具有2列(csetID & skillcode),並且選擇語句也僅由2列構成,這兩列是相同的量。

UPDATE

錯誤正在由 查詢別處說法引起。出於某種原因,錯誤代碼僅將其定位到查詢 的這一部分。一切都是固定的,並感謝大家的反饋意見。

+1

你想要做什麼?它不是如何與子句應該使用 – brenners1302

+1

你可以在Sqlfiddle.com上放一個小例子嗎? – StuartLC

+1

從最後一個逗號 - 之前/ *更多的東西/ *我認爲存在更多的命名子查詢 - 除了顯示的那些? –

回答

1

當你有

with q(a,b) as (select x, y from ... 

a和b爲x和y的別名。

我必須假設,與您的條款之一是這樣的:

with q(a,b) as (select x from ... 

with q(a,b) as (select x, y, z from... 

,使得實際選擇不匹配別名的數量柱的側向承載力的數量。