0

我有例如表 1 和表 2,在表 1 中,我需要计算数字 1 从行 Organizacao 发生的次数,然后总结并更新表 2 行 cntVoluntarios。

为了数数,我这样做了:

CREATE PROC CntVoluntarios
SELECT 'OrganizacaoID', COUNT(*) AS 'Voluntarios'
FROM Pessoa
WHERE 'OrganizacaoID'=1

但是我现在如何检索计数并将其更新到表 2 行 cntVoluntarios?

4

3 回答 3

0

看起来你想要

WITH CTE AS
(
  SELECT Organizacao, COUNT(1) Cnt
  FROM Table1
  GROUP BY Organizacao
)
UPDATE T2
SET cntVoluntarios = Cnt
FROM Table2 T2
JOIN CTE T1 ON T1.Organizacao = T2.Organizacao
WHERE T1.Organizacao = 1;
于 2020-04-30T12:42:07.840 回答
0
UPDATE M
SET C_Name =S.Voluntarios
FROM Table_1 M
INNER JOIN (SELECT OrganizacaoID, COUNT(*) AS Voluntarios
FROM Pessoa
GROUP BY OrganizacaoID) S ON S.OrganizacaoID=M.OrganizacaoID

希望这适用于您的情况:

您可以提供任何示例数据以进一步检查吗?

于 2020-04-30T12:36:51.823 回答
0

也许是这样的,我不确定我的字段是否正确......但你可以根据你的需要调整它

UPDATE table2
   SET cntVoluntarios = ( SELECT COUNT(*) 
              FROM Pessoa
              WHERE 'OrganizacaoID'=1)
于 2020-04-30T12:33:12.433 回答