sql查询最大值及其id的方法

假设数据库里有两个表:AAAA和BBBBAAAA中三列分别是:idabtt112301123402134503145604BBBB中两列分别是:idabtt2128012... 假设数据库里有两个表:AAAA和BBBB
AAAA中三列分别是:
id ab tt
1 123 01
1 234 02
1 345 03
1 456 04
BBBB中两列分别是:
id ab tt
2 128 01
2 233 02
2 341 03
2 459 04
现在需要统计出AAAA和BBBB在同一个tt时ab的最大值及其对应的id,比如查询tt=02时结果为
id ab
1 234
SQL语句该怎么写呢?非常感谢
展开
 我来答
badkano
2013-03-06 · 知道合伙人体育行家
badkano
知道合伙人体育行家
采纳数:144776 获赞数:885371
团长

向TA提问 私信TA
展开全部
SELECT b.ID, b.ab
FROM (SELECT ID, ab, tt
FROM aaaa
UNION ALL
SELECT ID, ab, tt
FROM bbbb) b
WHERE EXISTS (SELECT 1
FROM (SELECT a.tt, MAX (a.ab) ab
FROM (SELECT ID, ab, tt
FROM aaaa
UNION ALL
SELECT ID, ab, tt
FROM bbbb) a
GROUP BY a.tt) c
WHERE c.tt = b.tt AND c.ab = b.ab)
AND b.tt = '02'

最后一行替换你想查的tt
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
putinpubin2007
2013-03-06
知道答主
回答量:8
采纳率:0%
帮助的人:6万
展开全部
可以用union all连接两个查询,分别查出两种表对应的id和ab的值,然后外层嵌套sql(按ab降序排序,取第一行数据)
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友a800768
2013-03-06 · TA获得超过1841个赞
知道大有可为答主
回答量:1928
采纳率:0%
帮助的人:1729万
展开全部
SELECT id,max(ab) as ab
from
(
select * from AAAA
union
select * from BBBB)
where tt='02'
group by id
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
szm341
2013-03-06 · TA获得超过6726个赞
知道大有可为答主
回答量:5005
采纳率:100%
帮助的人:5169万
展开全部
select case when a.ab>b.ab then a.id else b.id end as id
,case when a.ab>b.ab then a.ab else b.ab end as ab
from aaaa as a inner join bbbb as b on a.tt=b.tt
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
x_zh_j
2013-03-06
知道答主
回答量:15
采纳率:0%
帮助的人:9.7万
展开全部
SELECT b.id,b.tt,MAX(ab)as ab
FROM (SELECT ID, ab, tt
FROM aaaa
UNION ALL
SELECT ID, ab, tt
FROM bbbb) b
where tt='02'
group by b.ID,tt
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式