主从表查询问题

hendry_huang 2006-04-10 10:56:13
要查找主表对应从表中日期最大的记录

select Box.BoxId,BoxCode,BoxModel,BoxChargeName,BoxCharge,BoxOutDate,BoxInDate,BoxRemark from Box,BoxInfo where ( Box.BoxId=BoxInfo.BoxId) and (BoxOutDate =
(SELECT TOP 1 BoxOutDate
FROM Box,BoxInfo where Box.BoxId=BoxInfo.BoxId
ORDER BY BoxOutDate DESC))

这是我写的,不对,请指教
...全文
259 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
dulei115 2006-04-10
  • 打赏
  • 举报
回复
select a.BoxId,BoxCode,BoxModel,BoxChargeName,BoxCharge,BoxOutDate,BoxInDate,BoxRemark
from Box a join BoxInfo b on a.BoxId = b.BoxId
where b.BoxOutDate = (select max(BoxOutDate) from Box where BoxId = b.BoxId)
dulei115 2006-04-10
  • 打赏
  • 举报
回复


select a.BoxId,BoxCode,BoxModel,BoxChargeName,BoxCharge,BoxOutDate,BoxInDate,BoxRemark
from Box a join BoxInfo b on a.BoxId = b.BoxId
where b.BoxOutDate in (select top 1 BoxOutDate from Box
where BoxId = b.BoxId order by BoxOutDate desc))
hendry_huang 2006-04-10
  • 打赏
  • 举报
回复
比如一个作者有很多书,我要找时间最大(最后出版的)那本书,
得到所有作者和他们最后一本书信息的表
huailairen 2006-04-10
  • 打赏
  • 举报
回复
不懂楼主意思。
hendry_huang 2006-04-10
  • 打赏
  • 举报
回复
好像对了,我在看看
sxdoujg 2006-04-10
  • 打赏
  • 举报
回复
select BoxId,BoxCode,BoxModel,BoxChargeName,BoxCharge,BoxOutDate,BoxInDate,BoxRemark
from BoxInfo as b
where BoxOutDate = (select max(BoxOutDate) from BoxInfo where b.BoxId=BoxInfo .BoxId )
试试

hendry_huang 2006-04-10
  • 打赏
  • 举报
回复
BoxOutDate = (select max(BoxOutDate) from Box where BoxId = b.BoxId)
这一句只返回一个时间就结束了
sxdoujg 2006-04-10
  • 打赏
  • 举报
回复
select a.BoxId,BoxCode,BoxModel,BoxChargeName,BoxCharge,BoxOutDate,BoxInDate,BoxRemark
from BoxInfo
where BoxOutDate = (select max(BoxOutDate) from Box where BoxId = b.BoxId)
hendry_huang 2006-04-10
  • 打赏
  • 举报
回复
只显示从表中日期最大的记录,没有和主表一一对应
hendry_huang 2006-04-10
  • 打赏
  • 举报
回复
不是要的结果,只返回了一条对应的记录

22,206

社区成员

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

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