2010-11-08 135 views
1

我有以下查询,它给了我一个错误:“关键字'GROUP'附近的语法不正确。” < - 显示第二个GROUP BY语句...您能告诉我为什么吗?sql server 2005查询语法错误

SELECTventId 
,TargetUser 
,TargetDomain 
,String05 
,Amount 
,max(Amount) maximum 
FROM 
    (SELECT EventId 
       , TargetUser 
       , TargetDomain 
      , String05 
FROM AdtServer.dvAll 
GROUP BY EventId, TargetUser, TargetDomain, String05) 

GROUP BY EVENTID,TargetUser,TargetDomain,String05,金额//错误所示的是

ORDER BY最大,TargetUser

如果我创建视图的内部查询,它工作正常(但我不不想创建视图,因为如果我的查询是长时间运行的查询,它会让我超时)。

回答

1

你需要给一个别名到您的表:

SELECTventId 
,TargetUser 
,TargetDomain 
,String05 
,Amount 
,max(Amount) maximum 
FROM 
    (SELECT EventId 
       , TargetUser 
       , TargetDomain 
      , String05 
    FROM AdtServer.dvAll 
    GROUP BY EventId, TargetUser, TargetDomain, String05 
    ) x 
GROUP BY EventId,TargetUser,TargetDomain,String05,Amount 
ORDER BY maximum,TargetUser 
+0

你是正确的我找到了答案,但因为你是绝对正确的,我会给你接受..非常感谢你.. :) – kupa 2010-11-08 13:50:57

1

我发现answeeeeeeeer

我应该写as tempTB我的意思是我的查询应该是这样的:

SELECTventId 
,TargetUser 
,TargetDomain 
,String05 
,Amount 
,max(Amount) maximum 
FROM 
    (SELECT EventId 
       , TargetUser 
       , TargetDomain 
      , String05 
FROM AdtServer.dvAll 
GROUP BY EventId, TargetUser, TargetDomain, String05) as tempTB 
GROUP BY EventId,TargetUser,TargetDomain,String05,Amount 

ORDER BY maximum,TargetUser