有一个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 就正常了!!
新手,豆少,求指点。
首先正确的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,语句不再报错。
需要对子查询加上别名。如:
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
你的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 () 括号中的也可以看作是一个数,但要给这个表命个名子。