2009-07-09 80 views
0

如何制定这个查询SQL Server的语法更新

update forge..dimInteg2 
    set duplicates = 
     (select count(*) from (select idCover 
           from x90..dimCover 
           group by idCover 
           having count(*) > 1)) 
where dimTable = 'dimCover' 

避免这种错误

Line 6: Incorrect syntax near ')'. 

类似[SQL Server subquery syntax 但我似乎无法得到别名欺骗工作。

我在SQL Server 2000上

+1

请问您可以使用不同的主题行吗?主题不是简单地对您的问题进行分类,它只是对其进行简要描述。例如,“SQL Server UPDATE:How to Use Alias” – 2009-07-09 09:25:20

回答

3

你缺少一个括号?

update forge..dimInteg2 
set duplicates = 
    (select count(*) from (select idCover 
          from x90..dimCover 
          group by idCover 
          having count(*) > 1)) --HERE 
where dimTable = 'dimCover' 

然后别名解决方案应该工作。

+0

woops - 这是一个拼写错误,我把括号放进来,得到了一个稍微不同的错误,我改变了 – cindi 2009-07-09 09:29:31

0

尝试添加字段dimTable到第二个SELECT语句:

update forge..dimInteg2 
    set duplicates = 
     (select count(*) from (select idCover --, dimTable HERE 
           from x90..dimCover 
           group by idCover 
           having count(*) > 1) 
where dimTable = 'dimCover' 
0

您需要命名派生表。

更新forge..dimInteg2 组重复= (SELECT COUNT(dimCover.idCover)从(由idCover 从x90..dimCover 组选择idCover 具有COUNT(*)> 1)dimCover) 其中dimTable ='dimCover'