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
展开
 我来答
wen_job
2010-05-18
知道答主
回答量:3
采纳率:0%
帮助的人:0
展开全部
请把你的问题说明确点,首先你如果是要只显示一个 用户名 你可以用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
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式