一个主表 和一个明细表 通过一个 编号关联 主表与明细表示的关系是一对多
怎样实现 上图的功能 
下面是把明细表交叉可是把所有数据查出来了declare s varchar2(32767);
s1 integer:=0;begin
 s := 'select sheetno , ';
 for v_cur in (select distinct GUESTREMARK1,MALFUNCTION,ISMAIN,FITTINGCODE,CCT,REPAIRMODULE,ISCHANGE from wx_sheet_nokia_detail )
   loop
     s1:=s1+1;
     s:=s||' max(case GUESTREMARK1 when '''|| v_cur.GUESTREMARK1 ||''' then GUESTREMARK1 else '''' end ) as  故障现象代码'|| to_char(s1) ||',';
      s:=s||' max(case MALFUNCTION when '''|| v_cur.MALFUNCTION ||''' then MALFUNCTION else '''' end ) as  故障原因代码'|| to_char(s1) ||',';
      s:=s||' max(case ISMAIN when '|| v_cur.ISMAIN ||' then ISMAIN else 3 end ) as  是否主要维修'|| to_char(s1) ||',';
      s:=s||' max(case FITTINGCODE when '''|| v_cur.FITTINGCODE ||''' then FITTINGCODE else '''' end ) as  备件编号'|| to_char(s1) ||',';
      s:=s||' max(case CCT when '''|| v_cur.CCT ||''' then CCT else '''' end ) as  CCT'|| to_char(s1) ||',';
      s:=s||' max(case REPAIRMODULE when '''|| v_cur.REPAIRMODULE ||''' then REPAIRMODULE else '''' end ) as  REPAIRMODULE'|| to_char(s1) ||',';
      s:=s||' max(case ISCHANGE when '|| v_cur.ISCHANGE ||' then ISCHANGE else 3 end ) as  是否更换备件'|| to_char(s1) ||',';
     end loop;
 s := substr(s,0,length(s)-1) ||' from wx_sheet_nokia_detail  group by sheetno'; dbms_output.put_line(s);end;
OracleSQL