使用复杂分组更新具有另一个表的计数的表

时间:2016-02-29 16:41:54

标签: sql sql-server

(使用SQL Server 2014)

我有两张桌子

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

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

我想将Vendors.ClientCount更新为Payments中该VendorName的唯一ClientID数。我确信这很容易做到,但是三个小时的喋喋不休让我确信我不够简单。

1 个答案:

答案 0 :(得分:0)

一种方式:

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

虽然这似乎是在飞行中更好地计算/计算的东西,而不是作为常数值。