假如我有两个表,第一个表是一个活动表:格式如下:
ID  活动名字
1     活动aa1
2    活动aa2
3     活动aa3
……
还有一个是报名上面一些活动的表,报名表, ID1关联上面的活动表的自增ID,即某个活动
ID    ID1   报名人
1       1       bb1
2        2      bb2
3        1      bb3
4        1       bb4我的问题是怎么才能在报名表中得到具体一个活动如上面的ID为1对应的某个人比如 bb4在这个活动中的报名顺序的ID 3的,概括为某个活动只要有人报名就让它自增1的呢

解决方案 »

  1.   

    当然用的数据库是SQL Server
      

  2.   

    SQL Server:
    SELECT COUNT(1) AS INDEX
      FROM 报名表 A
     WHERE A.ID1 = 1
       AND A.报名人 = BB4如果是 ORACLE 就比较简单了,直接可以使用 ROWNUMBER 来处理
      

  3.   

    我理解他的意思了,但是还没有做出来,希望高手出现:
    id  活动ID  自增列 
    1     1      1
    2     1      2
    3     1      3
    4     2      1
    5     2      2
    6     2      3
    7     3      1
    楼主就是想要得到上表的"自增列".
      

  4.   

    Sorry, it uses ROWNUM in oracle, not ROWNUMBER
      

  5.   

    在添加报名表的时候 可以用存储过程啊 
    create proc Up_test
    @m int --报名课程ID 
    asdeclare @a int --报名该课程的数量 
    select @a=count(id1) from 报名表 where id1=@m
    insert into ...........
      

  6.   

    活动表
    ID  活动名字  下一个报名ID(默认值1)报名表
    ID    报名人 活动ID  活动顺序INSERT INTO 报名表 (报名人,活动ID,活动顺序)
        SELECT @人,ID,下一个报名ID FROM 活动表 WHERE ID=@ID
    UPDATE 活动表 SET 下一个报名ID=下一个报名ID+1 WHERE ID=@ID
      

  7.   

    lizh0103(天天向上) 的应该可以实现,最好用触发器就比较好了,达到了同步更新的目的,就是不知道怎么实现
      

  8.   

    如果算上此前被删除的数据项!可以再为报名表加一字段!比如删除项(bool类型)删除一项数据时可以设置该项为true(目的是为了方便是否把此前被删除的数据也算进去罢了)插入新的数据前先统计符合要插入活动类型的总人数(where 删除=false此时为不计删除项 ,或者不用where语句即计删除项在内)然后在插入数据的时候在报名顺序字段里插入(总人数+1)的数据 即可!
      

  9.   

    syc958() 说的很有道理
    刚才我在实现的时候也忽视了还有报名取消这种情况,不然的话很容易在删除后在插入的过程中会出现报名号码的现象,引起混淆!!