2016-02-29 42 views
0

(使用SQL Server 2014)更新表与复杂的分组另一个表的计数

我有两个表

1) Vendors 
a.  VendorName (PrimaryKey) 
b.  ClientCount 

2) Payments 
a.  VendorName (ForeignKey) 
b.  ClientID 

我想更新Vendors.ClientCount以独特的客户端ID对数付款中的VendorName。我确信这很容易做到,但三个小时的徘徊让我相信我不够简单。

回答

0

方式一:

UPDATE Vendors 
SET ClientCount = (
    SELECT COUNT(DISTINCT P.ClientID) FROM Payments P WHERE P.VendorName = Vendors.VendorName 
) 

虽然这似乎是更好的计算计算在运行,而不是作为一个恒定值的东西/。