11,849
社区成员
发帖
与我相关
我的任务
分享
CREATE TABLE [dbo].[tb](
[Id] [int] IDENTITY(1,1) NOT NULL,
[UserName] [nvarchar](50) NULL,
[Sex] bit NULL,
[Subject] [nvarchar](50) NULL,
[Source] [numeric](18, 0) NULL
) ON [PRIMARY]
INSERT INTO [tb] ([UserName],[Subject],[Source])
SELECT N'张三',0,N'语文',60 UNION ALL
SELECT N'李四',0,N'数学',70 UNION ALL
SELECT N'王五',1,N'英语',80 UNION ALL
SELECT N'王五',0,N'数学',75 UNION ALL
SELECT N'王五',1,N'语文',57 UNION ALL
SELECT N'李四',0,N'语文',80 UNION ALL
SELECT N'张三',0,N'英语',100
SELECT [UserName],
SUM(CASE [Subject] WHEN '数学' THEN [Source] ELSE 0 END) AS '[数学]',
SUM(CASE [Subject] WHEN '英语' THEN [Source] ELSE 0 END) AS '[英语]',
SUM(CASE [Subject] WHEN '语文' THEN [Source] ELSE 0 END) AS '[语文]'
FROM [tb]
GROUP BY [UserName]
SELECT [id],[UserName],[sex],
SUM(CASE [Subject] WHEN '数学' THEN [Source] ELSE 0 END) AS '[数学]',
SUM(CASE [Subject] WHEN '英语' THEN [Source] ELSE 0 END) AS '[英语]',
SUM(CASE [Subject] WHEN '语文' THEN [Source] ELSE 0 END) AS '[语文]'
FROM [tb]
GROUP BY [id],[UserName],[sex]
放到GROUP BY 那边去