我的数据库表是这样的:
dateofthis deptname    in     out   
2007-01-01     AOO1     10     20  
2007-02-01     AOO1     23     13  
2007-03-01     AOO1     13     20  
2007-01-01     BOO1     12     24  
2007-02-01     BOO1     10     20  
2007-03-01     COO1     10     20  
2007-01-01     DOO1     34     40  
2007-02-01     DOO1     60     20  
2007-03-01     DOO1     20     30  现在我用JSP在网页实现这样的效果:
deptname     一月in  一月out   二月in  二月out  三月in  三月out
A001           10         20      23         13        13       20
B001           12         24      10         20         0       0
C001            0          0       0          0        10       20
D001           34         40      60         20        20       30请问我该如何在JSP中写?

解决方案 »

  1.   

    用table,我只说说显示方法哈
    <table>
         <tr>
            <td>deptname</td><td>一月in</td><td>一月out</td><td> 二月in</td><td>二月out</td><td>三月in</td><td>三月out</td>//这样实现你上面的一栏标题
         </tr>
         <%
          //假如你用的jdbc,然后循环输出结果
              while(rs.net()){
                <tr>
            <td>rs.getString("name1")</td> <td>rs.getString("name2")</td>   <td>rs.getString("name3")</td>   <td>rs.getString("name4")</td>   <td>rs.getString("name5")</td>   <td>rs.getString("name6")</td>   <td>rs.getString("name7")</td>        
    </tr>
             
    }%>
    </table>
    这样就能得到你要的排版效果
      

  2.   

    select * from table order by deptname asc, dateofthis asc;
      

  3.   

    数据库中每三条记录组成bean的一条记录
      

  4.   

    请问一下 name1,name2.....name7是什么意思?
      

  5.   

    请问一下 name1,name2.....name7是什么意思?是每个列的名称吗?
      

  6.   

    请问一下 name1,name2.....name7是什么意思?是每个列的名称吗?
    => YES
      

  7.   

    myseven() 
    select * from table order by deptname asc, dateofthis asc;这个查询可以,但是在显示的时候做一些判断处理
    1. 获取ResultSet中的每一行时,判断当前deptname 是否和前一行数据相同.如果相同,则在html中无需新起一行.如果不同则新起一行.
    2. 如果每个deptname下,月份有缺失的话,还要记录判断月份以确定在表格中那个td显示数据.
      

  8.   

    个人认为LZ您的数据库表 极度混乱 建议把你们的DBA拖出去枪毙。。
    LS的方法可行 不过实现有点困难 取出结果集里面的 字段有一定的顺序的 显示时又需要不同行的字段同一行显示 (重复字段不重复显示)select * from table order by deptname asc, dateofthis asc;能够获得排序  只有把输出格式(<td>rs.getString("name1")</td>这种)写入字符串 按判断 +在 一起输出了
      

  9.   

    我的数据库表是这样的:
    dateofthis deptname    in     out   
    2007-01-01     AOO1     10     20  
    2007-02-01     AOO1     23     13  
    2007-03-01     AOO1     13     20  
    2007-01-01     BOO1     12     24  
    2007-02-01     BOO1     10     20  
    2007-03-01     BOO1      0     0
    2007-01-01     COO1      0     0  
    2007-02-01     COO1      0     0  
    2007-03-01     COO1     10     20  
    2007-01-01     DOO1     34     40  
    2007-02-01     DOO1     60     20  
    2007-03-01     DOO1     20     30  现在我用JSP在网页实现这样的效果:
    deptname     一月in  一月out   二月in  二月out  三月in  三月out
    A001           10         20      23         13        13       20
    B001           12         24      10         20         0       0
    C001            0          0       0          0        10       20
    D001           34         40      60         20        20       30请问我该如何在JSP中写?<table>
         <tr>
            <td>deptname</td><td>一月in</td><td>一月out</td><td> 二月in</td><td>二月out</td><td>三月in</td><td>三月out</td>//这样实现你上面的一栏标题
         </tr>
       int i = 1;
       while (rs1.next()) {
          if (i % 3 == 1) 
             {
             out.println("<tr>");
    out.println(" <td>" + rs1.getValue("name") + "</td> ");
    out.println(" <td>" + Integer.valueOf(rs1.getValue("name1")) + "</td> ");
    out.println(" <td>" + Double.valueOf(rs1.getValue("name2")) + "</td> ");

             else{
         out.println(" <td>" + rs1.getValue("name3") + "</td> ");
        }
    if (i % 3 ==0)   out.println("</tr>");
    }
        %>
    </table>这样写有问题吗?
      

  10.   

    这样写有问题getValue("name"),实现的时候你怎么能写name,name1之类的东西呢,你要写你需要的字段名呀,或者直接写数字,不过建议用字段名,要不更改表结构的时候容易出问题。
    你的表结构设计的不合理,我建议你用你显示的结构建表,就是使表与显示的结构一致这样就简单了。 
    bruni(不如你) 说得有道理。只是需要一些判断,搂主可以多看看数据库的例子,感觉楼主基本功有些不足。
      

  11.   

    哎,数据库和Java以前就没学过,还是做这个报表时,才接触到的,感觉好难啊,力不从心我的表一,不是建的,是SQL写出来的,想尽办法就只能写成这样了,可以建的话,就简单了
      

  12.   

    <table>
         <tr>
            <td>deptname</td><td>一月in</td><td>一月out</td><td> 二月in</td><td>二月out</td><td>三月in</td><td>三月out</td>//这样实现你上面的一栏标题
         </tr>
       int i = 1;
       while (rs1.next()) {
          if (i % 3 == 1) 
             {
             out.println("<tr>");
    out.println(" <td>" + rs1.getValue("deptname") + "</td> ");
    out.println(" <td>" + Integer.valueOf(rs1.getValue("in")) + "</td> ");
    out.println(" <td>" + Integer.valueOf(rs1.getValue("out")) + "</td> ");

            接下来怎么写呢?
        %>
    </table>