2012-07-20 52 views
4

我的子查询提供了一个错误:Msg 102, Level 15, State 1, Line 17 Incorrect syntax near ')'.SQL子查询错误附近)

SELECT SalesArea, Branch, Volume 
from 
(select 
br.SalesArea as SalesArea 
,br.Branch as Branch 
, sum(a.Volume) as Volume 
FROM dbo.vDetail a with (nolock) 
LEFT JOIN 
dbo.vBranch AS br WITH (nolock) 
ON a.Branch = br.Branch 
group by a.Volume, br.SalesArea, br.Branch) 
+6

你可能需要给子查询的别名。 )qry。 – 2012-07-20 08:54:42

+0

谢谢!解决了它。 – Wilest 2012-07-20 08:56:04

回答

5

你缺少别名子查询尝试这个。

SELECT SalesArea, Branch, Volume 
from 
(select 
br.SalesArea as SalesArea 
,br.Branch as Branch 
, sum(a.Volume) as Volume 
FROM dbo.vDetail a with (nolock) 
LEFT JOIN 
dbo.vBranch AS br WITH (nolock) 
ON a.Branch = br.Branch 
group by a.Volume, br.SalesArea, br.Branch) as x 
1

您需要别名为派生表

SELECT SalesArea, Branch, Volume 
from 
(select 
br.SalesArea as SalesArea 
,br.Branch as Branch 
, sum(a.Volume) as Volume 
FROM dbo.vDetail a with (nolock) 
LEFT JOIN 
dbo.vBranch AS br WITH (nolock) 
ON a.Branch = br.Branch 
group by a.Volume, br.SalesArea, br.Branch) as T 
5

从子查询每一个选择需要的别名。只需添加在最后的 “X”,这将成为该表

NOT OK的名字:

select * from (
    select * from your_table 
) 

OK:

select * from (
    select * from your_table 
) X 
+0

什么.....:O – nobalG 2017-07-18 09:00:59