一条简单SQL语句!(内详)

purexiafeng 2007-04-05 08:54:59
table aa
(
a_id int,
a_b_code varchar(20),
a_time data,
a_memo varchar(100)
)

table bb
(
b_id int,
b_code varchar(20),
b_memo varchar(100)
)



取数据:
当aa 表里的 a_b_code = bb表的b_code 时
取 a_time是时间最大的一条

SQL语句杂写。。?
...全文
196 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
OracleRoob 2007-04-05
  • 打赏
  • 举报
回复

--如果AA中存在a_b_code相同,a_time也相同的记录,只取一条

select A.*,B.*
from AA as A
inner join BB AS B on A.a_b_code=B.b_code
where A.a_id=(select top 1 a_id from AA where a_b_code=A.a_b_code order by a_time desc,a_id desc)

OracleRoob 2007-04-05
  • 打赏
  • 举报
回复
如果a_b_code相同,a_time也相同,只显示一条?
purexiafeng 2007-04-05
  • 打赏
  • 举报
回复
AA表里的唯一字段就是a_id啊,加了就可以了吗
OracleRoob 2007-04-05
  • 打赏
  • 举报
回复
select a_b_code,max(a_time) as a_time from A group by a_b_code

这个子查询中,如果a_b_code相同,a_time也相同,会返回一条。

但与AA关联时,会显示两条。

所以,如果要确保显示一条,需要给AA表加一个唯一ID字段。
purexiafeng 2007-04-05
  • 打赏
  • 举报
回复
如果在a_b_code 想同的时候 a_time也相同的 会有什么后果
OracleRoob 2007-04-05
  • 打赏
  • 举报
回复

select A.*,B.*
from AA as A
inner join BB AS B on A.a_b_code=B.b_code
inner join (select a_b_code,max(a_time) as a_time from A group by a_b_code) C
on A.a_b_code=C.a_b_code and A.a_time=C.a_time
purexiafeng 2007-04-05
  • 打赏
  • 举报
回复
杂人了
purexiafeng 2007-04-05
  • 打赏
  • 举报
回复
搞清楚我的意思哦,不是取一条数据哦

34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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