SQL Server:使用count更新字段的存储过程

时间:2013-03-05 13:12:30

标签: sql sql-server stored-procedures

我之前从未编写过存储过程。如何使用表B中共享密钥的记录计数结果更新表A中的字段?

表A是“用户”表,其主键为“userid”,字段为“rental_count”。表B是带有外键“userid”的“出租”表

对于表A中的每个用户(记录),将“rental_count”字段更新为表B中与该用户匹配的租金总和。

这个问题包括每晚实际实现和运行存储过程的机制。

1 个答案:

答案 0 :(得分:2)

SQL Server

CREATE PROCEDURE UpdateTableA
AS
UPDATE  a
SET     a.rentals_count = b.totalCount
FROM    TableA a
        INNER JOIN
        (
            SELECT  userID, Count(*) totalCount
            FROM    TableB
            GROUP   BY userID
        ) b ON a.userID = b.userID

<击>

<击>

MySQL

UPDATE  TableA a
        INNER JOIN
        (
            SELECT  userID, Count(*) totalCount
            FROM    TableB
            GROUP   BY userID
        ) b ON a.userID = b.userID
SET     a.rentals_count = b.totalCount

<击>