代码如下:
请高人帮忙
谢谢了~<%
String serial_no=request.getParameter("serial_no");
//String count=request.getParameter("count");
//int countno=Integer.parseInt(count);Connection conn=null;
Statement sql=null;
ResultSet rs1=null;
ResultSet rs2=null;
ResultSet rs3=null;
ResultSet rs4=null;try
{//加載數據庫驅動
  Class.forName("oracle.jdbc.driver.OracleDriver");
}
catch(ClassNotFoundException e)
{
  out.print("数据库驱动加载失败");
}
//try
//{//數據庫鏈接
  conn=DriverManager.getConnection("jdbc:oracle:thin:@192.168.132.25:1521:acsgit01","sitedbt","git9280#");
  sql=conn.createStatement();
  //定義查詢條件
  //查询表rm_item_detail
  String condition1="select serial_no,apply_no,line_no,rma_no,rma_center from rm_item_detail where serial_no="+serial_no;
  rs1=sql.executeQuery(condition1);
  
  //查询表rm_header
  String condition2="select RMA_TYPE from rm_header where RMA_NO="+rs1.getString("rma_no");
  rs2=sql.executeQuery(condition2);
  
  //查询表rm_site_master
  String condition3="select name from rm_site_master where rma_center="+rs1.getString("rma_center");
  rs3=sql.executeQuery(condition3);
  
  //查询表rm_item_extrainfo
  String condition4="select KEYIN_DATE,CLOSED_DATE,(CLOSED_DATE-KEYIN_DATE) TAT from rm_item_extrainfo where line_no="+rs1.getString("line_no")+" and apply_no="+rs1.getString("apply_no");
  rs4=sql.executeQuery(condition4);
  out.print("<table border>");
  out.print("<tr>");
  out.print("<th width=50>"+"serial_no");
  out.print("<th width=50>"+"RMA_no");
  out.print("<th width=50>"+"RMA_TYPE");
  out.print("<th width=50>"+"RMA_CENTER");
  out.print("<th width=50>"+"KEYIN_DATE");
  out.print("<th width=50>"+"CLOSED_DATE");
  out.print("<th width=50>"+"TAT");
  out.print("</tr>");
  while(rs1.next())
  {
  out.print("<tr>");
  out.print("<td width=50>"+rs1.getString(1)+"</td>");
  out.print("<td width=50>"+rs1.getString(2)+"</td>");
  out.print("<td width=50>"+rs2.getString(1)+"</td>");
  out.print("<td width=50>"+rs3.getString(1)+"</td>");
  out.print("<td width=50>"+rs4.getString(1)+"</td>");
  out.print("<td width=50>"+rs4.getString(2)+"</td>");
  out.print("<td width=50>"+rs4.getString(3)+"</td>");
  out.print("</tr>");
  }
  out.print("</table>");
  //int lowrow=rs.getRow();
  //out.print(""+lowrow+"");
  //out.print("Database Connection!");
  //out.print(table);
//}
//catch(SQLException e)
//{
  out.print("Database Disconnection");
//}
%>

解决方案 »

  1.   

    不会使用关联,汗。。
    能否帮提供源码
    Thanks
      

  2.   

    关联其实不复杂的,就是select * from A,B,C where a.* = B.* and A.* =C.* 之类的,
    关键是看不清你这几个表之间的关系
      

  3.   

        String condition1 = "SELECT rmid.serial_no, rmid.apply_no, rmh.RMA_TYPE, rmsm.name
    , rmie.KEYIN_DATE, rmie.CLOSED_DATE, (rmie.CLOSED_DATE - rmie.KEYIN_DATE) TAT
    FROM   rm_item_detail rmid, rm_header rmh, rm_site_master rmsm, rm_item_extrainfo rmie
    WHERE rmid.rma_no = rmh.rma_no AND rmsm.rma_center = rmid.rma_center 
    AND rmie.line_no = rmid.line_no AND rmie.apply_no = rmid.apply_no AND rmid.serial_no = " + serial_no; 
        rs1=sql.executeQuery(condition1); ......
        
        while(rs1.next()) 
        { 
        out.print( " <tr> "); 
        out.print( " <td   width=50> "+rs1.getString(1)+ " </td> "); 
        out.print( " <td   width=50> "+rs1.getString(2)+ " </td> "); 
        out.print( " <td   width=50> "+rs1.getString(3)+ " </td> "); 
        out.print( " <td   width=50> "+rs1.getString(4)+ " </td> "); 
        out.print( " <td   width=50> "+rs1.getString(5)+ " </td> "); 
        out.print( " <td   width=50> "+rs1.getString(6)+ " </td> "); 
        out.print( " <td   width=50> "+rs1.getString(7)+ " </td> "); 
      

  4.   

    楼上没细看,差不多!
    就是把你rs2,rs3,rs4中的  类似rs1.getString( "rma_no "); 换成 rma_no 就好了。
    select 你需要的字段 
    from  你的4张表,每个取个别名,例如分别是a,b,c,d
    where 你原来的where条件 ,字段前面加别名,按照我上面说的替换就可以了
      

  5.   

    感谢HelloWord_001大哥
    问题已经解决