vb2008 ASP.net sqlserver 2005 express
在查询生成器里生成了如下的选择语句,执行查询之后,用户名显示有重复,要怎么解决这个问题?SELECTaspnet_Users.UserName,aspnet_Member...
在查询生成器里生成了如下的选择语句,执行查询之后,用户名显示有重复,要怎么解决这个问题?
SELECT aspnet_Users.UserName, aspnet_Membership.Password, aspnet_Roles.RoleName, aspnet_Membership.CreateDate,
aspnet_Membership.LastLoginDate
FROM aspnet_Membership INNER JOIN
aspnet_Users ON aspnet_Membership.UserId = aspnet_Users.UserId INNER JOIN
aspnet_UsersInRoles ON aspnet_Membership.UserId = aspnet_UsersInRoles.UserId CROSS JOIN
aspnet_Roles 展开
SELECT aspnet_Users.UserName, aspnet_Membership.Password, aspnet_Roles.RoleName, aspnet_Membership.CreateDate,
aspnet_Membership.LastLoginDate
FROM aspnet_Membership INNER JOIN
aspnet_Users ON aspnet_Membership.UserId = aspnet_Users.UserId INNER JOIN
aspnet_UsersInRoles ON aspnet_Membership.UserId = aspnet_UsersInRoles.UserId CROSS JOIN
aspnet_Roles 展开
1个回答
展开全部
请把你的问题说明确点,首先你如果是要只显示一个 用户名 你可以用GROUP BY
但是这样还是有重复的用户名存在,因为 它对应的角色或者别的不同
如果是 显示一个用户名 多个角色的话 可能GROUP BY 不能实现
如果想要实现的话 可以 考虑 使用 行列转换来实现
但是就是不知道 你要的效果是否这样.
例:
行列转换前的数据:
学员姓名 科目名称 分数
张三 语文 80
王五 语文 60
张三 数学 90
李四 数学 98
王五 数学 75
张三 英语 100
李四 英语 60
王五 英语 95
行列转换后的数据
列标头:学员姓名 语文(Subject表的Name) 数学 英语 等
数据: 张三 80(Score表的值) 90 100 。
数据: 李四 0(没有则显示0) 98 60 。
数据: 王五 60(Score表的值) 75 95 。
如果是的话就修改下 这个SQL语句 就可以了
select StudentName,sum(case SubjectName when '数学' then Scores else 0 end) as '数学',
sum(case SubjectName when '英语' then Scores else 0 end) as '英语',
sum(case SubjectName when '语文' then Scores else 0 end) as '语文'
from test
group by StudentName
但是这样还是有重复的用户名存在,因为 它对应的角色或者别的不同
如果是 显示一个用户名 多个角色的话 可能GROUP BY 不能实现
如果想要实现的话 可以 考虑 使用 行列转换来实现
但是就是不知道 你要的效果是否这样.
例:
行列转换前的数据:
学员姓名 科目名称 分数
张三 语文 80
王五 语文 60
张三 数学 90
李四 数学 98
王五 数学 75
张三 英语 100
李四 英语 60
王五 英语 95
行列转换后的数据
列标头:学员姓名 语文(Subject表的Name) 数学 英语 等
数据: 张三 80(Score表的值) 90 100 。
数据: 李四 0(没有则显示0) 98 60 。
数据: 王五 60(Score表的值) 75 95 。
如果是的话就修改下 这个SQL语句 就可以了
select StudentName,sum(case SubjectName when '数学' then Scores else 0 end) as '数学',
sum(case SubjectName when '英语' then Scores else 0 end) as '英语',
sum(case SubjectName when '语文' then Scores else 0 end) as '语文'
from test
group by StudentName
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询