有两个表:管线运行记录和管线瞬时运行 
管线运行记录的字段:管线名称, 生产日期, 管理单位, 起点站名, 起点气量, 末点站名, 末站气量 
管线瞬时运行的字段:管线名称, 生产日期, 录取时间, 起点站名, 末点站名, 起点压力, 起点温度,  末点压力, 末点温度 
两个表中管线名称,起点站名,末点站名为相同字段。 现在我需要从两个表中查询数据,从管线运行记录中查询出某个日期的管线名称, 生产日期, 管理单位, 起点站名, 起点气量, 末点站名, 末站气量记录,再将管线瞬时运行中的查出相同管线,相同日期,录取时间为23点的起点压力, 起点温度, 末点压力, 末点温度,添加到第一个查询结果中,需得到下面的查询结果: 管线名称, 生产日期, 管理单位, 起点站名, 起点气量, 末点站名, 末站气量,起点压力, 起点温度, 末点压力, 末点温度 
其中粗体的字段为管线瞬时运行中的字段。请问SQL语句如何写! 我写的查询语句是: 
select r.生产日期,r.管线名称,r.管理单位,r.起点站名,r.起点气量,r.末点站名,r.末站气量,s.起点压力,s.起点温度,s.末点压力,s.末点温度 from 管线运行记录 r, 管线瞬时运行 s  where  r.管线名称=s.管线名称 and s.录取时间=23 and  r.生产日期=to_date('2008-04-08','yyyy-MM-dd') and s.生产日期=to_date('2008-04-08','yyyy-MM-dd') 本来一条管线应该是两条记录,一条起点录入的,一条末点录入的,查询出来有4条,有两条重复的!
2 2008-4-8 东明开封线377 输气管理六区 东明增压站 46.4997 0.51 
3 2008-4-8 东明开封线377 输气管理六区 开封配气站 44.6685 0.51 
4 2008-4-8 东明开封线377 输气管理六区 东明增压站 46.4997 
5 2008-4-8 东明开封线377 输气管理六区 开封配气站 44.6685 

解决方案 »

  1.   

    将    and  r.生产日期=to_date('2008-04-08','yyyy-MM-dd') and s.生产日期=to_date('2008-04-08','yyyy-MM-dd')  
    改为
    and  r.生产日期=s.生产日期 and s.生产日期=to_date('2008-04-08','yyyy-MM-dd')  
      

  2.   

    where 后加多 and r.起点站名=s.起点站名 and r.末点站名=s.末点站名
    看看
    估计是因为你的管线名称 不是唯一的,(管线名称,起点站名,末点站名) 3键才是唯一的吧??
      

  3.   

    頂下吧, 不太明白你的意思, 你的意思如果是2個查詢的組合的話, 可用union