| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 709 人关注过本帖
标题:求助子查询返回多条记录怎么处理
只看楼主 加入收藏
csyx
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:火星
等 级:版主
威 望:37
帖 子:638
专家分:2472
注 册:2018-3-13
收藏
得分:4 
Create cursor 表A (编号 I, 姓名 V(10))
Create cursor 表B (编号 I, 年月 N(8,2))

Insert into 表A (编号, 姓名) Values (1, '张三')
Insert into 表A (编号, 姓名) Values (2, '李四')
Insert into 表A (编号, 姓名) Values (3, '王五')

Insert into 表B (编号, 年月) Values (1, 1990.01)
Insert into 表B (编号, 年月) Values (2, 1990.02)
Insert into 表B (编号, 年月) Values (3, 2000.07)
Insert into 表B (编号, 年月) Values (2, 1990.05)

Select a.*, b.年月 from 表a a ;
inner join 表b b on a.编号 == b.编号 ;
inner join ( ;
    select 编号, Max(年月) 年月 from 表b group by 编号) c ;
    on b.编号 == c.编号 and b.年月 = c.年月

这家伙很懒,啥也没留下
2023-03-20 18:14
倦猫1973
Rank: 2
等 级:论坛游民
威 望:1
帖 子:68
专家分:28
注 册:2022-11-17
收藏
得分:4 
Top 1 + Order By b.字段 [desc]
2023-03-20 18:20
mywisdom88
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:191
帖 子:3146
专家分:8408
注 册:2015-3-25
收藏
得分:4 
以下是引用sharpex1在2023-3-20 17:04:36的发言:

不是,B是另外一个表,想在A表 中返回 B表 X字段,条件 是 A.编号=b.编号,我的命令 sele *,(sele x from B wher a.编号=b.编号) from a ,这里出错,提示子查询返回多条记录,因为B编号有重复,所以想问下怎么 在这个   sele *,(sele x from B wher a.编号=b.编号) from a  基础上改一下,如果B返回多条记录,取X字段值较大那个

取B表中,X字段的最大值
select max(x) x ,编号 from b group by 编号
联合起来就是
select t1.*,t2.x from a t1;
inner join (select max(x) x ,编号 from b group by 编号) t2 ;
on t1.编号=t2.编号
2023-03-21 00:13
快速回复:求助子查询返回多条记录怎么处理
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.014811 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved