极具挑战性的select语句检索

yangguangzhixing 2010-09-16 02:49:11
select tb_sport.fd_sport,fd_BeginTime,fd_EndTime,fd_Today,fd_Calorie
from tb_JKDA,tb_sport
where tb_JKDA.fd_sportID=tb_sport.fd_sportID and fd_userID= 1
检索出的结果为fd_userID= 1这个人的历史运动项目详细记录。
现需要检索出此人历史运动中最喜爱的运动项目(即记录最多的项目)详细记录。
注:tb_JKDA是健康档案表,列名有[fd_userID]、[fd_sportID]、[fd_BeginTime]、[fd_EndTime]、[fd_Today]、
[fd_Calorie]
tb_sport是运动项目表,列名有[fd_sportID]、[fd_sport]
...全文
222 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
神码浮云 2010-09-17
  • 打赏
  • 举报
回复
学习了...
xiaoxin4321 2010-09-16
  • 打赏
  • 举报
回复
觉得楼上的答案都不错啊
malingsq 2010-09-16
  • 打赏
  • 举报
回复

select tb_JKDA.fd_userID,tb_JKDA.fd_sportID,fd_Calorie,fd_BeginTime,fd_EndTime,fd_Today
from (select top 1 count(fd_userID) as [count],fd_sportID from tb_JKDA
where fd_userID=1 group by fd_sportID) c,tb_JKDA
where tb_JKDA.fd_sportID=c.fd_sportID
lawbc 2010-09-16
  • 打赏
  • 举报
回复
貌似没什么难的
gongsun 2010-09-16
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 yangguangzhixing 的回复:]
经过我的测试,以上都没通过,所以还希望各位能测试通过后给个完美的结果。thanks!
[/Quote]

没有数据,我们都是自己随手写的,不可能测试的。

都差不多,改改就出来了。

有时间这里要答案,都改出来了。

什么都帮你做好了,你怎么提高啊???
ShinNakoruru 2010-09-16
  • 打赏
  • 举报
回复

SELECT fd_sport,fd_BeginTime,fd_EndTime,fd_Today,fd_Calorie
FROM tb_JKDA jkda
INNER JOIN tb_sport sport ON jkda.fd_sportID=tb_sport.fd_sportID
WHERE jkda.sportID = (SELECT top 1 fd_sportID FROM dbo.tb_JKDA
GROUP BY fd_sportID,fd_userID
HAVING fd_userID=1
ORDER BY COUNT(fd_sportID) DESC) AND fd_userID=1

ShinNakoruru 2010-09-16
  • 打赏
  • 举报
回复

SELECT fd_sport,fd_BeginTime,fd_EndTime,fd_Today,fd_Calorie
FROM tb_JKDA jkda
INNER JOIN tb_sport sport ON jkda.fd_sportID=tb_sport.fd_sportID
WHERE jkda.sportID = (SELECT top 1 fd_sportID FROM dbo.tb_JKDA
GROUP BY fd_sportID,fd_userID
HAVING fd_userID=1
ORDER BY COUNT(fd_sportID) DESC) AND fd_userID=1


yangguangzhixing 2010-09-16
  • 打赏
  • 举报
回复
经过我的测试,以上都没通过,所以还希望各位能测试通过后给个完美的结果。thanks!
gongsun 2010-09-16
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 yangguangzhixing 的回复:]
这个问题看样真的真的很难,大家继续帮个忙吧
[/Quote]

最喜爱的运动项目(即记录最多的项目)

------------------------

我没有测试。

就是 分组算个最大数,关联一下 你的表,没什么难的。
yangguangzhixing 2010-09-16
  • 打赏
  • 举报
回复
这个问题看样真的真的很难,大家继续帮个忙吧
gongsun 2010-09-16
  • 打赏
  • 举报
回复
select * from
(
select max(count(fd_sportID)) as TopNum,fd_sportID from tb_JKDA
where fd_userID= 1
group by fd_sportID
order by TopNum desc
) A
inner join
(
select tb_sport.fd_sport,fd_BeginTime,fd_EndTime,fd_Today,fd_Calorie
from tb_JKDA,tb_sport
where tb_JKDA.fd_sportID=tb_sport.fd_sportID and fd_userID= 1
) B

on A.fd_sportID=B.fd_sportID
yangguangzhixing 2010-09-16
  • 打赏
  • 举报
回复
不是很完美,没有出现预计的结果
q107770540 2010-09-16
  • 打赏
  • 举报
回复
select top 1 * from( select count(fd_sportID) c,* from tb_JKDA group by fd_sportID
where fd_userID=1 order by c desc)
yangguangzhixing 2010-09-16
  • 打赏
  • 举报
回复
希望走过路过的给个建议

62,272

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧