Sql server 在程序中计数
有两个表之间的关系为1:M, (公民表)和(卡片表) 现在每张卡片上都有很多市民 我需要做的是计算每张卡的用户数量,并将结果放入卡表的一列中 这就是功能: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
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更多解释哪个部分?你试过用谷歌搜索你不懂的部分吗?