首页 新闻 搜索 专区 学院

这个SQL语句为什么报错?

0
悬赏园豆:15 [已解决问题] 解决于 2014-07-31 11:59

有一个SQL 语句:

SELECT COUNT (*)
FROM (SELECT a.[Number] AS 推荐人,COUNT(b.Number) AS 推荐人数 FROM [hz].[dbo].[MemberInfo] a JOIN MemberInfo b ON a.Number =b.Direct
GROUP BY a.Number) 

报错:消息 102,级别 15,状态 1,第 5 行

')' 附近有语法错误。

 

在 a.Number)后加上AS c 就正常了!!

 

新手,豆少,求指点。

泰德的主页 泰德 | 初学一级 | 园豆:5
提问于:2014-07-30 21:54
< >
分享
最佳答案
0

首先正确的SQL语句格式你是知道的,是SELECT COUNT(*) FROM 表名; 由于(SELECT a.[Number] AS 推荐人,COUNT(b.Number) AS 推荐人数 FROM [hz].[dbo].[MemberInfo] a JOIN MemberInfo b ON a.Number =b.Direct 
GROUP BY a.Number) 这一句查出来的是资源,所以语法错误; 当加上AS c 之后,此时表名变成了c,语句不再报错。

收获园豆:5
ercom | 菜鸟二级 |园豆:269 | 2014-07-31 00:41
其他回答(2)
0

需要对子查询加上别名。如:

SELECT COUNT (*)
FROM (SELECT a.[Number] AS 推荐人,COUNT(b.Number) AS 推荐人数 FROM [hz].[dbo].[MemberInfo] a JOIN MemberInfo b ON a.Number =b.Direct 
GROUP BY a.Number) t1

收获园豆:5
幻天芒 | 园豆:36790 (高人七级) | 2014-07-31 09:29
0

你的SQL如下:

SELECT COUNT (*)
FROM (SELECT a.[Number] AS 推荐人,COUNT(b.Number) AS 推荐人数 FROM [hz].[dbo].[MemberInfo] a JOIN MemberInfo b ON a.Number =b.Direct
GROUP BY a.Number)

后面应该加个标志符表示你所查的数据集,形如如下格式就行了:

select a,b ,c from (

   select x, y, z from yourTable

) temporaryTable

也就是说 from () 括号中的也可以看作是一个数,但要给这个表命个名子。

 

收获园豆:5
Albert Fei | 园豆:2102 (老鸟四级) | 2014-07-31 10:30
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册