标识符无效的问题,求大家帮忙

cz_study_java 2012-08-28 10:01:44
我现在有三个表 conference表,time1表,time2表
conference表有 conference_id ,conference_name
time1表有 conference_id,time1(时间类型)
time2表有conference_id,time2(时间类型)
我想通过conference_id得到time1,time2表中最大的时间,我这么写sql,但是不行

SELECT CONFERENCE_NAME,
(SELECT MAX(MAX_TIME)
FROM (SELECT TIME1 MAX_TIME
FROM TIME1 T1
WHERE T1.CONFERENCE_ID = C.CONFERENCE_ID
UNION
SELECT TIME2 MAX_TIME
FROM TIME2 T2
WHERE T2.CONFERENCE_ID = C.CONFERENCE_ID)) MAX_TIME
FROM CONFERENCE C

报c.conference_id标识符无效,求大家帮助,谢谢
...全文
572 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
BenChiM888 2012-08-28
  • 打赏
  • 举报
回复
我回复的第个是错的,理解错了,用第二个来做吧
第一个写法不用看了。。。


[Quote=引用 5 楼 的回复:]

刚才的回复是对一楼说的,我再看看二楼的
[/Quote]
cz_study_java 2012-08-28
  • 打赏
  • 举报
回复
刚才的回复是对一楼说的,我再看看二楼的
cz_study_java 2012-08-28
  • 打赏
  • 举报
回复
刚才的回复是对一楼说的,我再看看二楼的
cz_study_java 2012-08-28
  • 打赏
  • 举报
回复
您的回复虽然很好,但是我可能没说清我的意思,我不是单独要得到某一个表中时间的最大值,我要得到这两个表中时间的最大值,并且要进行比较,最大的那一个,我想要的是最大的那一个,而不是分别得到各自表的最大值,但是还是感谢您的回复,望大家继续帮忙,谢了
BenChiM888 2012-08-28
  • 打赏
  • 举报
回复

--1、union 本身就能剔重
SELECT CONFERENCE_NAME,
(SELECT MAX(TIME1)
FROM TIME1 T1
WHERE T1.CONFERENCE_ID = C.CONFERENCE_ID
UNION
SELECT MAX(TIME2)
FROM TIME2 T2
WHERE T2.CONFERENCE_ID = C.CONFERENCE_ID) MAX_TIME
FROM CONFERENCE C

--2、用分析函数来做
SELECT CONFERENCE_NAME,
GREATEST(MAX(T1.TIME1) OVER(), MAX(T2.TIME2) OVER()) MAX_TIME
FROM CONFERENCE C, TIME1 T1, TIME2 T2
WHERE T1.CONFERENCE_ID = C.CONFERENCE_ID
AND T2.CONFERENCE_ID = C.CONFERENCE_ID;


人生无悔 2012-08-28
  • 打赏
  • 举报
回复

--試下
select c.conference_id,t1.time1,t2.time2
from conference c
left join (select max(time1) time1 from time1 group by conference_id) t1 on c.conference_id=t1.conference_id
left join (select max(time2) time2 from time2 group by conference_id) t2 on c.conference_id=t2.conference_id

17,082

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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