如何通过实际计算另一个表中的行来更新一个表中的计数字段?

时间:2013-10-27 17:53:10

标签: sql

我有两张桌子。我需要通过计算另一个表来填充一个表中的字段。 我写了这个查询,但它不起作用:

update  Publisher
set Publisher.[Count]=Count(Document.Id)
From Publisher inner join Document
on Publisher.Name=Document.Organization COLLATE DATABASE_DEFAULT

1 个答案:

答案 0 :(得分:1)

假设SQL Server,您希望通过将group by Publisher.Name放在查询末尾来解决此问题。但是,更新语句中不允许这样做。因此,您必须使用相关的子选择:

update  
    p
set 
    p.[Count] = (
        Select Count(*) 
        From Document d 
        Where p.[Name] = d.Organization collate database_default
    )
From
    Publisher p;