2016-04-04 9 views
1

我有這個問題,它真的研磨我的齒輪,因爲我真的找不到解決方案。我正在SQL Server Management Studio中工作。 在這裏,我選擇不重複的數據,平均另一列的值的每個不同的數據,這樣的:除了沒有使用嵌入式sql查詢

SELECT age, standing 
FROM 
(SELECT DISTINCT standing, avg(age) as age 
FROM student 
group by standing) as s 

現在,這工作正常。出現該問題,當我嘗試這樣做:

SELECT age, standing 
FROM 
(SELECT DISTINCT standing, avg(age) as age 
FROM student 
group by standing) as s 

EXCEPT 

SELECT age, standing 
FROM 
(SELECT DISTINCT standing, avg(age) as age 
FROM student 
WHERE standing = 'JR' 
group by standing) as k 

EXCEPT及以下EXCEPT優秀作品上面的選擇,但合起來就是不。該程序告訴我一個關於除外的錯誤: 解析查詢時出錯。 [令牌行號= 6,令牌行偏移量= 1,令牌出錯= EXCEPT]

我也嘗試過UNION,INTERSECT和MINUS。只有工會似乎工作,現在我真的不知道這裏發生了什麼。

我期待着解決方案,也真的有興趣我做錯了什麼。

+0

您使用的是哪個版本的SQL Server? – supergrady

+1

我正在使用Microsoft SQL Server Management Studio 10.50.1600.1 – Dajer

回答

0

您是否試圖用'JR'排除記錄? 爲什麼不試試這個:

SELECT age, standing 
FROM 
(SELECT DISTINCT standing, avg(age) as age 
FROM student 
where standing <> 'JR' 
group by standing) as s 
+0

非常感謝! :)它的工作原理與我想要的一樣。 但是不管怎麼說,你不知道是什麼原因導致這個問題除外?我只是好奇這件事。 – Dajer

0

可以運行此查詢「SELECT @@ VERSION」,並告訴你得到的信息。 我嘗試了一個查詢類似於你的在我的「SQL服務器2008」,它工作正常。 另外,當你使用union,intersect和除了你不需要使用distinct,它不會導致任何問題,但不需要,因爲它們返回不同的行。

+0

它不起作用,它會拋出全局變量名稱無效的錯誤。 無論如何,我使用版本10.50.1600.1。 – Dajer