本人初学Java,用Swing设计一个 学生考勤系统。
要实现这样的功能:每周考勤,把考勤情况放在一张表里,
                  下一周考勤,要把上周考勤和这周考勤结合(比如:张三上周旷课2节,这周旷课1节,结合后共旷课3节)              但是又要保存上周的考勤情况,意思就是可以查每一周的考勤情况。
请教 数据库语句 具体要怎么写?就是在结合本周的考勤之前,复制一份上周的考勤。

解决方案 »

  1.   


       建议你列出你的表结构,并提供测试数据以及基于这些测试数据的所对应正确结果。
       参考一下这个贴子的提问方式http://topic.csdn.net/u/20091130/20/8343ee6a-417c-4c2d-9415-fa46604a00cf.html
       
       1. 你的 create table xxx .. 语句
       2. 你的 insert into xxx ... 语句
       3. 结果是什么样,(并给以简单的算法描述)
       4. 你用的数据库名称和版本(经常有人在MS SQL server版问 MySQL)
       
       这样想帮你的人可以直接搭建和你相同的环境,并在给出方案前进行测试,避免文字描述理解上的误差。   
      

  2.   


    不好意思,之前不懂提问格式。数据库使用的是MySQL
    表的结构:
    mysql> select * from cowa;
    +----+------+----+----+----+----+----+----+----------+
    | id | name | cd | zt | kk | bj | sj | gj | xjqk     |
    +----+------+----+----+----+----+----+----+----------+
    |  1 | 张三 | 1  | 2  | 3  | 4  | 5  | 6  | 已经销假 |
    |  2 | 李四 | 6  | 5  | 4  | 3  | 2  | 1  | 未销假   |
    +----+------+----+----+----+----+----+----+----------+创建表:
    DROP TABLE cowa;
    CREATE TABLE cowa(
    id INT  AUTO_INCREMENT  PRIMARY KEY,
    name  Varchar(16) NOT NULL,
    cd VARCHAR(2) NOT NULL,
    zt VARCHAR(2)  NOT NULL,
    kk VARCHAR(2) NOT NULL,
    bj VARCHAR(2) NOT NULL,
    sj VARCHAR(2) NOT NULL,
    gj VARCHAR(2) NOT NULL,
    xjqk VARCHAR(50)   NOT NULL);
    插入语句:
    INSERT INTO cowa(id,name,cd,zt,kk,bj,sj,gj,xjqk) VALUES(1,'张三',1,2,3,4,5,6,'未销假');INSERT INTO cowa(id,name,cd,zt,kk,bj,sj,gj,xjqk) VALUES(2,'李四',6,5,4,3,2,1,'已销假');再说明下问题:
                  每周考勤,考勤情况 每周都累加上去,比如:张三上周旷课2节,这周旷课1节,累加后共旷课3节。        
                  但是又要可以查询每周的考勤情况,比如:查询上周考勤,显示张三旷课2节;查询本周,显示张三旷课3节。(我的想法是,在每周考勤的时候,先复制一份上周的考勤存到另外一张新的表,然后再做本周的考勤,但是不懂实现,请教,谢谢~~)              
      

  3.   

    比如这是第一周的考勤:
    +----+------+----+----+----+----+----+----+----------+
    | id | name | cd | zt | kk | bj | sj | gj | xjqk     |
    +----+------+----+----+----+----+----+----+----------+
    |  1 | 张三  | 1  | 2  | 3  | 4  | 5  | 6  | 已经销假  |
    |  2 | 李四  | 6  | 5  | 4  | 3  | 2  | 1  | 未销假    |
    +----+------+----+----+----+----+----+----+----------+在第二周,张三又旷课了2节,(kk代表旷课)
    更新数据库的表以后,显示的应该是:
    +----+------+----+----+----+----+----+----+----------+
    | id | name | cd | zt | kk | bj | sj | gj | xjqk     |
    +----+------+----+----+----+----+----+----+----------+
    |  1 | 张三  | 1  | 2  | 5  | 4  | 5  | 6  | 已经销假  |
    |  2 | 李四  | 6  | 5  | 4  | 3  | 2  | 1  | 未销假    |
    +----+------+----+----+----+----+----+----+----------+怎么做才能 即可查第一周的表又可以查第二周的表?
    如果第三考勤,张三又旷课3节,那么,表应该是:
    +----+------+----+----+----+----+----+----+----------+
    | id | name | cd | zt | kk | bj | sj | gj | xjqk     |
    +----+------+----+----+----+----+----+----+----------+
    |  1 | 张三  | 1  | 2  | 8  | 4  | 5  | 6  | 已经销假  |
    |  2 | 李四  | 6  | 5  | 4  | 3  | 2  | 1  | 未销假    |
    +----+------+----+----+----+----+----+----+----------+现在就需要查找3张表,以此类推。ps:是不是需要在数据库事先创建好表,意思是,如果知道要进行5周的考勤,就要先在数据库中创建好5张表? 能不能动态创建表? 就是一开始,数据库里只有1张表,到了第二周,动态地创建第二张表,以此类推。这么说不懂有没有清楚,感谢你的回答,期待回复~~ :-)
      

  4.   

    麻烦管理员删除5楼,我编辑错了,不好意思。
    比如这是第一周的考勤:
    +----+------+----+----+----+----+----+----+----------+
    | id | name | cd | zt | kk | bj | sj | gj | xjqk |
    +----+------+----+----+----+----+----+----+----------+
    | 1 | 张三 | 1 | 2 | 3 | 4 | 5 | 6 | 已经销假 |
    | 2 | 李四 | 6 | 5 | 4 | 3 | 2 | 1 | 未销假 |
    +----+------+----+----+----+----+----+----+----------+在第二周,张三又旷课了2节,(kk代表旷课)
    更新数据库的表以后,显示的应该是:
    +----+------+----+----+----+----+----+----+----------+
    | id | name | cd | zt | kk | bj | sj | gj | xjqk |
    +----+------+----+----+----+----+----+----+----------+
    | 1 | 张三 | 1 | 2 | 3 | 6 | 5 | 6 | 已经销假 |
    | 2 | 李四 | 6 | 5 | 4 | 3 | 2 | 1 | 未销假 |
    +----+------+----+----+----+----+----+----+----------+怎么做才能 即可查第一周的表又可以查第二周的表?
    如果第三考勤,张三又旷课3节,那么,表应该是:
    +----+------+----+----+----+----+----+----+----------+
    | id | name | cd | zt | kk | bj | sj | gj | xjqk |
    +----+------+----+----+----+----+----+----+----------+
    | 1 | 张三 | 1 | 2 | 3 | 9 | 5 | 6 | 已经销假 |
    | 2 | 李四 | 6 | 5 | 4 | 3 | 2 | 1 | 未销假 |
    +----+------+----+----+----+----+----+----+----------+现在就需要查找3张表,以此类推。ps:是不是需要在数据库事先创建好表,意思是,如果知道要进行5周的考勤,就要先在数据库中创建好5张表? 能不能动态创建表? 就是一开始,数据库里只有1张表,到了第二周,动态地创建第二张表,以此类推。这么说不懂有没有清楚,感谢你的回答,期待回复~~ :-)
      

  5.   

    大概看懂了一些。你每一周都是一张单独的表。一般考勤系统,没见过这么设计的。 常见的设计是attendance ( id, adate, type)ID Adate Type
    1  2010-10-01  OK
    1  2010-10-02  KK
    1  2010-10-03  ZT
    ....