日期:2014-05-17  浏览次数:20813 次

酷似多表查询问题,求sql文
有三张表A,B,C。
A表字段部分如下:
JTB_DIV_CD,ADDRESSEE,                 INQUIRY_ACTION_PLAN_DATE
B表字段部分如下:
JTB_DIV_CD,MESSAGE_ADDRESSEE,MESSAGE_ACTION_PLAN_DATE
C表字段部分如下:
JTB_DIV_CD,ADDRESS,                     NOTE_ACTION_PLAN_DATE
以上每个表的字段属性相对应,
求一sql语句,得到如下结果:

JTB_DIV_CD                 ADDRESSEE                     DATE
--------------------------------------------
A表JTB_DIV_CD           A表ADDRESSEE               A表DATE
A表JTB_DIV_CD           A表ADDRESSEE               A表DATE
B表JTB_DIV_CD           B表ADDRESSEE               B表DATE
A表JTB_DIV_CD           A表ADDRESSEE               A表DATE
C表JTB_DIV_CD           C表ADDRESSEE               C表DATE
A表JTB_DIV_CD           A表ADDRESSEE               A表DATE
C表JTB_DIV_CD           C表ADDRESSEE               C表DATE
A表JTB_DIV_CD           A表ADDRESSEE               A表DATE


也就是向把这三张表的这三个字段的数据分别归纳到一起,而且有两个需求。
1。最终结果要按DATE字段排序。
2。最终结果需要第1行到100行的数据

各位大侠们!出手把!谢谢

------解决方案--------------------
用一个比较笨的方法:
select * from
(select * from
(select JTB_DIV_CD as JTB_DIV_CD£¬ADDRESSEE as ADDRESSEE£¬ INQUIRY_ACTION_PLAN_DATE as DATE from A
union
select JTB_DIV_CD£¬MESSAGE_ADDRESSEE£¬MESSAGE_ACTION_PLAN_DATE from B
union
select JTB_DIV_CD£¬ADDRESS£¬ NOTE_ACTION_PLAN_DATE from C
)
order by date
)
where rownum < 101