我有一个具有以下结构的 SQL Server 数据库
CREATE TABLE users (
userid INT IDENTITY PRIMARY KEY CLUSTERED,
age INT
)
GO
CREATE TABLE userstatus(
userstatusID INT IDENTITY PRIMARY KEY CLUSTERED,
statusid INT,
userid INT FOREIGN KEY REFERENCES dbo.users(userid)
)
GO
一些示例数据:
INSERT INTO dbo.users
( age )
VALUES ( 15 -- age - int
),
( 20 ),
( 25 );
INSERT INTO dbo.userstatus
( statusid, userid )
VALUES ( 1, 1 ),
( 1, 2 ),
( 1, 3 ),
( 2, 1 ),
( 3, 1 ),
( 2, 2 );
现在我想获得用户年龄的总和,以及状态为 2 的用户年龄的总和。
就像是:
状态年龄 = 2: 35 总年龄:60
这看起来很简单:
更新:
对于同一用户在
dbo.userstatus
表中有多个相同状态的情况,可以使用: