我有例如表 1 和表 2,在表 1 中,我需要计算数字 1 从行 Organizacao 发生的次数,然后总结并更新表 2 行 cntVoluntarios。
为了数数,我这样做了:
CREATE PROC CntVoluntarios
SELECT 'OrganizacaoID', COUNT(*) AS 'Voluntarios'
FROM Pessoa
WHERE 'OrganizacaoID'=1
但是我现在如何检索计数并将其更新到表 2 行 cntVoluntarios?
我有例如表 1 和表 2,在表 1 中,我需要计算数字 1 从行 Organizacao 发生的次数,然后总结并更新表 2 行 cntVoluntarios。
为了数数,我这样做了:
CREATE PROC CntVoluntarios
SELECT 'OrganizacaoID', COUNT(*) AS 'Voluntarios'
FROM Pessoa
WHERE 'OrganizacaoID'=1
但是我现在如何检索计数并将其更新到表 2 行 cntVoluntarios?
看起来你想要
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;
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
希望这适用于您的情况:
您可以提供任何示例数据以进一步检查吗?
也许是这样的,我不确定我的字段是否正确......但你可以根据你的需要调整它
UPDATE table2
SET cntVoluntarios = ( SELECT COUNT(*)
FROM Pessoa
WHERE 'OrganizacaoID'=1)