两个表格联合查询问题

veritasfx 2011-10-07 09:24:21
有两张表格如下:
主表:
bid date slot wait
--------------------------------------
542 2011-10-08 5 101
544 2011-10-08 4 101
548 2011-10-08 4 102
543 2011-10-09 6 102
538 2011-10-09 4 101
539 2011-10-09 5 101
540 2011-10-09 6 101
参考表:
book_date slot
--------------------------
2011-10-08 5
2011-10-08 6
2011-10-08 4
2011-10-09 5

问题:
在主表中选择那些符合参考表中的记录,并选出最小的wait值的那个记录
在以上例子中,有颜色的记录是需要的结果。bid=584的有两记录,只选wait最小值的那个
...全文
40 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
veritasfx 2011-10-07
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 fredrickhu 的回复:]
SQL code
--try
;with f as
(
select
*
from
主表 a
where
exists(select 1 from 参考表 where book_date=a.date and slot=a.slot)
)
select * from f t where wait=(select min(wait) where date=t.……
[/Quote]
好像不行,An aggregate may not appear in the WHERE clause unless it is in a subquery contained in a HAVING clause or a select list, and the column being aggregated is an outer reference.

好像是说最后一句,where 语句不可以嵌套?

veritasfx 2011-10-07
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 fredrickhu 的回复:]
SQL code
--try
;with f as
(
select
*
from
主表 a
where
exists(select 1 from 参考表 where book_date=a.date and slot=a.slot)
)
select * from f t where wait=(select min(wait) where date=t.……
[/Quote]
这个select 1 是啥意思?我单独执行,选的全部是1啊
veritasfx 2011-10-07
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 fredrickhu 的回复:]
SQL code
--try
;with f as
(
select
*
from
主表 a
where
exists(select 1 from 参考表 where book_date=a.date and slot=a.slot)
)
select * from f t where wait=(select min(wait) where date=t.……
[/Quote]
谢谢先,我验证一下。。。
--小F-- 2011-10-07
  • 打赏
  • 举报
回复
--try
;with f as
(
select
*
from
主表 a
where
exists(select 1 from 参考表 where book_date=a.date and slot=a.slot)
)
select * from f t where wait=(select min(wait) where date=t.date and slot=t.slot)
veritasfx 2011-10-07
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 fredrickhu 的回复:]
bid=584的有两记录?没看见584的
[/Quote]
sorry,错了,是548也符合选择条件,但不是wait最小值,所以落选。
--小F-- 2011-10-07
  • 打赏
  • 举报
回复
bid=584的有两记录?没看见584的
【课程内容】所涉及的具体内容包括输入录入技巧、排序、筛选、函数公式、数据透视表、图表、汇总等功能应用,并结合大量的企业应用实例,以互动的方式将解决思路和操作过程逐一呈现。【课程特点】1、190节大容量课程:包含了Excel软件的大部分知识点;2、创新的教学模式:手把手教您电子表格,一看就懂,一学就会;3、完美贴心的操作提示:让您的眼睛始终处于操作的焦点位置,不用再满屏找光标;4、语言简洁精练:瞄准问题的核心所在,减少对思维的干扰,并节省您宝贵的时间;5、视频短小精悍:即方便于您的学习和记忆,也方便日后对功能的检索;【互动教程的特点】•互动性-首创互动式学习,不同于以往的任何一种学习方式,不看视频不看书,轻松,高效,好玩-手把手教学,一步步引导操作,实时看到效果,就像自己在操作一样,信心满满-即点即学,课程内可根据自己的需要,随时调整界面上方进度条,重复操作,加强记忆-强大的学习跟踪系统,对整体学习进度一目了然,及时调整学习计划,查疑补漏•人性化-界面设计简洁,操作简单,没有繁琐的按钮,一点就可直接进入学习状态-贴心小提示,读懂你的小心思,零基础快速入门,学习无压力,不尴尬-超多原理解析,疑问解答,如同专业Excel导师亲身指导,不翻书快速记忆,Excel小白迅速成长•实用性-课程由浅入深,操作过程详细剖析,一步步模仿,马上就会做。-涉及排序、筛选、函数公式、数据透视表、图表、汇总等核心功能的课程编排,通俗易懂不头疼-互动+观看视频,两种学习方式切换,上班路上,地铁里享受随时随地自由学习通过本课程的学习,您将逐步掌握Excel 2016的各项功能和使用技巧。从而提高您的办公效率,早做完,不加班!!!

22,210

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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