sql中怎么样给子查询重命名

问题要用的表为:
company(company_name,city)
works(employee_name,street,city)
查询如下:
SELECT company_name
FROM (SELECT company_name,COUNT(employee_name)
FROM works
GROUP BY company_name) AS A(company_name,number)
WHERE number>=ALL(
SELECT number
FROM A);
执行后出现:

消息 208,级别 16,状态 1,第 1 行
对象名 'A' 无效。
问题原题是:
Find the company in the database that has the most employees.
说用with语句的就不要了,就是想知道这个查询中from子句中的重命名怎么弄

--不同层次的子查询嵌套不能相互引用。你的第一个子查询别名A只能在WHERE中引用不能在WHERE下面再嵌套引用;
用子查询应该如下:
SELECT company_name
FROM (SELECT company_name,COUNT(employee_name) number
FROM works
GROUP BY company_name) TA
WHERE number>=ALL(
SELECT number
FROM (
SELECT company_name,COUNT(employee_name) number
FROM works
GROUP BY company_name)TB);
---或则,MS-SQLSERVER2005以及以上版本
;WITH
DD AS(
SELECT company_name,COUNT(employee_name) number
FROM works
GROUP BY company_name
)SELECT company_name
FROM DD
WHERE DD.number>=ALL(SELECT number FROM DD)
温馨提示:答案为网友推荐,仅供参考
相似回答