Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 在程序中计数_Sql Server - Fatal编程技术网

Sql server 在程序中计数

Sql server 在程序中计数,sql-server,Sql Server,有两个表之间的关系为1:M, (公民表)和(卡片表) 现在每张卡片上都有很多市民 我需要做的是计算每张卡的用户数量,并将结果放入卡表的一列中 这就是功能: Select Count (Citizen.ID)From [Citizen] Inner Join [Card] On Card.ID = Citizen.Card_ID; 我试图将该函数添加到过程中,但不知道如何设置它 Create proc CountUsers ( @Number_of_users ) Declare @Numb

有两个表之间的关系为1:M, (公民表)和(卡片表) 现在每张卡片上都有很多市民

我需要做的是计算每张卡的用户数量,并将结果放入卡表的一列中 这就是功能:

Select Count (Citizen.ID)From [Citizen] Inner Join [Card] On Card.ID = Citizen.Card_ID;
我试图将该函数添加到过程中,但不知道如何设置它

Create proc CountUsers
(
@Number_of_users
)


Declare @Number_of_users nvarchar(10)
Set 
Select Count (Citizen.ID)From Citizen Inner Join Card
On Citizen.Card_ID = Card.ID;

这就是你要找的吗

Select 
     Card.ID, Count(*) 
From [Citizen] 
Inner Join [Card] 
    On Card.ID = Citizen.Card_ID 
group by Card.ID;

您可以创建一个
标量值函数
而不是
存储过程
,并在脚本中使用该函数,将
插入
表:

create function CountCitizensByCardID
(
@CardID int
)
returns int
as
begin
    declare @Return int;

    select @Return = count(Citizen.ID)
    from Citizen
        inner join Card
            on Card.ID = Citizen.Card_ID
    where Citizen.Card_ID = @CardID;

    return @Return;
end
可按如下方式使用:

select ID
      ...
      ,CountCitizensByCardID(ID) as CitizenCount
from Card;

您可以按userid对其进行分组并使用updatec。如果您希望共享您的输入和预期输出,我建议您不要将计数存储在此处。除非此表中有数百万行存储这样的计数,否则没有必要这样做。你应该根据需要来计算。更多解释,请:)@Hady.J.Wolf更多解释哪个部分?你试过用谷歌搜索你不懂的部分吗?