又一个复杂的SQL问题,请求大家帮助。
jxlmz 2010-01-21 10:34:18 table1
meetnum meettype
1-101 标准会议室_15人
1-102 标准会议室_10人
1-103 标准会议室_10人
1-104 标准会议室_10人
1-105 视频会议室_20人
2-204 标准会议室_10人
2-205 标准会议室_10人
2-206 标准会议室_10人
table2
id mtmeetnum destineday fromhour fromminute tohour tominute
1095107100000000013 1-101 2010-01-21 09 10 10 10
1095107100000000015 1-101 2010-01-21 11 10 12 10
1095107100000000017 1-101 2010-01-21 13 10 14 10
1095107100000000014 1-105 2010-01-25 13 00 17 00
1095107100000000016 1-105 2010-01-21 13 00 17 00
要查出的结果 条件 where table2.destineday='2010-01-21' order by meetnum,fromhour,fromminute desc
注意: 重复1-101的地方不显示方法见例1:
meetnum destineday fromhour fromminute tohour tominute
1-101 2010-01-21 09 10 10 10
2010-01-21 11 10 12 10
2010-01-21 13 10 14 10
1-102
1-103
1-104
1-105 2010-01-21 13 00 17 00
2-204
2-205
2-206
------------------------------------
例1:
SELECT DECODE(RN, 1, mtmeetnum), destineday,staffname,fromhour,FROMMINUTE
FROM (SELECT t.mtmeetnum,
t.destineday,
t.staffname,
fromhour,
FROMMINUTE,
ROW_NUMBER() OVER(PARTITION BY t.mtmeetnum ORDER BY MTMEETNUM ,fromhour,FROMMINUTE DESC) RN
FROM use_mtmeetmessage t
WHERE t.isdelete = 'F'
ORDER BY T.MTMEETNUM ,t.fromhour,T.FROMMINUTE DESC);