Как получить сумму и обновить ее во второй строке таблицы? SQL - PullRequest
0 голосов
/ 30 апреля 2020

Я имею, например, для table1 и table 2, в таблице 1 мне нужно подсчитать, сколько раз число 1 происходит из строки Organizacao, затем суммировать все и обновить таблицу 2 строки cntVoluntar ios.

Чтобы подсчитать, я сделал это:

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

Но как теперь я могу получить сумму отсчета и обновить ее до строки таблицы 2 cntVoluntar ios ??

Ответы [ 3 ]

0 голосов
/ 30 апреля 2020
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

Надеюсь, что это работает для вашего случая:

Можете ли вы предоставить какие-либо образцы данных для дальнейшей проверки?

0 голосов
/ 30 апреля 2020

Похоже, вы хотите

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;
0 голосов
/ 30 апреля 2020

Может быть, что-то вроде этого, я не уверен, правильно ли я указал поля ... но вы можете настроить его под свои нужды

UPDATE table2
   SET cntVoluntarios = ( SELECT COUNT(*) 
              FROM Pessoa
              WHERE 'OrganizacaoID'=1)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...