本帖最后由 Jesam32421 于 2011-10-02 22:33:46 编辑

解决方案 »

  1.   

    不好意思。我要求结果是:
    QN ON
    q1 25
       28
       32
       95
       85
      

  2.   

    不知这样是否是楼主的意思?  select t.QN,
             t.ON
        from
             ( 
              Select Question.QuestionName QN,
                     Option.OptionName ON,
                     rownum as rn 
                from Question a, 
                     Option  b
               where a.QuestionID = b.QuestionID
                 and a.QuestionID=1
             ) t  
       where t.rn = 1
      

  3.   


    这样的结果是不可能的
    只能是这样子QN ON
    q1 25,28,32,95,85
    或者
    QN ON
    q1 25,28,32,95,85
      

  4.   

    如果这样的结果不可能,那麻烦就大了。我想把这个结果通过MVC传到JSP页面打印出来,总不可能如果该问题有5个选项,我就得把该问题打印5次吧。我只想打印1次问题,然后打印5个选项。
      

  5.   

    建议楼主使用这个函数吧
    结果更加直观  select t.QN
             wmsys.wm_concat(t.ON) as ON
        from
             ( 
              Select Question.QuestionName QN,
                     Option.OptionName ON
                from Question a, 
                     Option  b
               where a.QuestionID = b.QuestionID
                 and a.QuestionID=1
             ) t  
       group by t.QN;
      

  6.   

    楼主可以将讲结果传到 jsp页面的表格中然后 合并表格中的单元格 不就行了么?
      

  7.   


      select decode(rn,1,QN,
                        null) QN
             t.ON
        from
             ( 
              Select Question.QuestionName QN,
                     Option.OptionName ON,
                     rownum as rn 
                from Question a, 
                     Option  b
               where a.QuestionID = b.QuestionID
                 and a.QuestionID=1
             ) t  
       where  
    这样的吧
      

  8.   


    select decode(rn,1,QN,null) QN,t.ON
    from
             ( 
              Select Question.QuestionName QN,
                     Option.OptionName ON,
                     rownum as rn 
                from Question a, 
                     Option  b
               where a.QuestionID = b.QuestionID
                 and a.QuestionID=1
             ) t  回得太急了,修正下
      

  9.   

    楼主可以看看这个例子,看看对你有没有帮助<html> 
    <head> 
    <title>llll</title> 
    </head> 
    <body> <div id="aa"></div> 
    <h3>请输入要输入的表格的列数和行数:</h3> 
    行:<input type=text name="text1"> 
    <br> 
    列:<input type=text name="text2"> 
    <input type="button" value="提交" onclick="createtable()"> <h3>请输入两个数字</h3> 
    <h3>合并单元格:</h3> 
    从<input type=text name="text3">行 <input type=text name="text4">列开始 
    <br> 
    合并<input type=text name="text5">行 <input type=text name="text6">列 
    <br> 
    <input type="button" value="合并" onclick="changetable()"> 
    <script> 
    var i,j,tmp,l,r; 
    function createtable() 

    tmp="<table border=1 width=5% id = aaa>" 
    l=document.all.text1.value; 
    r=document.all.text2.value; for(j=0;j<l;j++) 

    tmp=tmp+"<tr>" 
    for(i=0;i<r;i++) 
    { tmp=tmp+"<td>" 
    tmp=tmp+"USE" 
    tmp=tmp+"</td>" } 
    tmp=tmp+"</tr>" 

    tmp=tmp+"</table>" 
    aa.innerHTML=tmp } function changetable(){
     var tab = document.all.aaa;
     if(tab){
    l=document.all.text3.value; 
    r=document.all.text4.value; 
    var obj = document.all.aaa.childNodes(0).childNodes(l-1).childNodes(r-1);
    row=document.all.text5.value; 
    col=document.all.text6.value;
    with(obj){
    colSpan = col;
    rowSpan = row;
    }
    var tbody = document.all.aaa.childNodes(0);
    if(col>1){
    obj.nextSibling.removeNode();
    }
    for (var m = 0; m <row-1 ; m++)
    {
    for (var n = 0; n < col; n++ )
    {
    indexRow = eval(m+"+"+l);
    indexCol = eval(n+"+"+r+"-"+"1");
    tbody.childNodes(indexRow).childNodes(indexCol).removeNode();
    }
    }
    }else{
    alert("no table");
     }
    }</script> 
    </body> 
    </html>
      

  10.   

    纠结。虽然是个小问题,但是困扰我两天了。我把分追加到100,如果能在数据库层面解决最好。不然传到JSP页面,又出现新问题。
      

  11.   


    select decode(rn,1,QN,null) QN,t.ON
    from
             ( 
              Select Question.QuestionName QN,
                     Option.OptionName ON,
                     rownum as rn 
                from Question a, 
                     Option  b
               where a.QuestionID = b.QuestionID
                 and a.QuestionID=1
             ) t  QN ON
    -- --
    q1 25
       28
       32
       95
       85
    这不就是你要的答案么!!不过这种排版问题都是放到应用程序里面来处理的
      

  12.   

    这样确实可以把第一行的q1保留,但如果不止一个问题肿么办:
    QN ON
    q1 25
       28
       32  
       95
       85
    q2 12
       35
       14
       78
       34
      

  13.   

    如果Oracle真没有这种能力的话,俺只有试着在其他环节处理数据了 :(
      

  14.   

    多条数据的话也可以用SQL达到目的
    不过要修改代码改用分析函数了select decode(rn,1,QN,null) QN,t.ON
    from
    (
    Select Question.QuestionName QN,
            Option.OptionName ON, 
           number()over(order by Question.QuestionName  parttion by Question.QuestionName) as rn 
                from Question a, 
                     Option  b
               where a.QuestionID = b.QuestionID
     ) t  
               
      

  15.   

    结贴吧,大家辛苦啦!看来只有在JSP上处理数据了