SQL Server in contrast to Oracle, if the subquery involved, then the corresponding table name, field must be named an alias to execute. There are two main types of situations:
1. Query SQL inside only a simple subquery does not contain grouping, sum wait Eg:elect * FROM (select com_id from company) so it will error, must add an alias, the layer of SELECT * from company here can add alias, You can also not add the correct: SELECT * FROM (select com_id to Company) a
2. Query SQL contains grouping, summation, or other functions when eg:select * FROM (select com_id, Count (com_id) from company Group by COM_ID) a here if you alias the outermost SQL , or the error will be added to company alias B select * FROM (select Com_id,count (com_id) to Company B Group by COM_ID) A that's not going to work because actually the count () function You can actually do it as a subquery, so you want to add the alias to count () correctly: SELECT * FROM (select com_id, COUNT (com_id) c from Company B Group by com_id) a