--我想把下表ID为1,6,11,16的记录取出来,select * from 表 where id in(1,6,11,16)

解决方案 »

  1.   

    不好意思用错号了,一样的,具体如下
    A表
    id  ssj               esj       xq
    1  17:00:00 17:40:00     1
    2  7:30:00 8:00:00      1  
    3  11:30:00 12:00:00     1
    4  12:30:00 13:00:00     1
    B表
     zt          rq             sj     xq
    旷工 2004-11-01      8:01:11    1
    正常 2004-11-01      12:57:14   1
    旷工 2004-11-01      16:09:00   1
    旷工 2004-11-01      19:52:45   1
    就是这两个表通过XQ连想得到上述记录,不智能否实现
      

  2.   

    或者
    A表
    id  ssj               esj       xq
    1  17:00:00 17:40:00     1
    2  7:30:00 8:00:00      1  
    3  11:30:00 12:00:00     1
    4  12:30:00 13:00:00     1
    B表
     zt          rq             sj     xq
    旷工 2004-11-01      8:01:11    1
    正常 2004-11-01      12:57:14   1
    旷工 2004-11-01      16:09:00   1
    想得到
    id  ssj               esj   zt          rq             sj
    1  17:00:00 17:40:00 旷工 2004-11-01      8:01:11 
    6  7:30:00 8:00:00 正常 2004-11-01      12:57:14 
    11 11:30:00 12:00:00 旷工 2004-11-01      16:09:00
    16 12:30:00 13:00:00 NULL     NULL             NULL
    应该说A,B表的记录是不固定的如果A表多B表就用NULL显示,如果B表多,A表就用NULL来显示,不知能否实现,不行的话能给个思路也行的
      

  3.   

    B表没有主键?如果A表有5条记录怎么显示? 如果A表只有3条记录呢?
      

  4.   

    B表有主键也是自增的
    如果A表有5条记录怎么显示? B表的有四条记录
    那么,B表的zt,rq,sj为NULL,A表正常显示如果A表只有3条记录呢? B表的有四条记录
    A表的ssj,esj为NULL,B表正常显示
    如上我回答的
    应该说A,B表的记录是不固定的如果A表多B表就用NULL显示,如果B表多,A表就用NULL来显示,
      

  5.   

    --那两个表都有id关联就行了
    select a.*
    ,b.zt,b.rq,b.sj,b.xq
    from A表 a left join B表 b
    on (select count(*) from A表 where id<=a.id)
    =(select count(*) from B表 where id<=b.id)
      

  6.   

    --错了,应该用 full join
    select a.*
    ,b.zt,b.rq,b.sj,b.xq
    from A表 a full join B表 b
    on (select count(*) from A表 where id<=a.id)
    =(select count(*) from B表 where id<=b.id)
      

  7.   

    select count(*) from A表 where id<=a.id
    你这个Where 后的ID指的是A表的吗
      

  8.   

    对不起我表达错误了,是这样的,这是一个考勤的统计报表,A表是时间段表,B表是考勤日志表,员工刷一下按当前星期分配的时间段显示状态,如果没有当前的时间段就显示旷工之类的吧,A表的记录有20条左右的,B表的有7,8十条的
    ssj      esj       xq
    7:30:00  8:00:00 星期二
    11:30:00 12:00:00 星期二
    12:30:00 13:00:00 星期二
    17:00:00 17:40:00 星期二
    22:00:00 22:30:00 星期日
    7:30:00  8:00:00 星期日
    7:30:00  8:00:00 星期三
    11:30:00 12:00:00 星期三
    12:30:00 13:00:00 星期三
    17:00:00 17:40:00 星期三
    17:00:00 17:40:00 星期四
    12:30:00 13:00:00 星期四
    11:30:00 12:00:00 星期四
    7:30:00  8:00:00 星期四
    7:30:00  8:00:00 星期五
    17:00:00 17:30:00 星期五
    12:30:00 13:00:00 星期一
    11:30:00 12:00:00 星期一
    7:30:00  8:00:00 星期一
    17:00:00 17:40:00 星期一
    B表是员工刷卡的日志表
    rq              sj          zt      xq
    2004-10-04      7:55:41    正常 星期一    
    2004-10-04      11:33:28   正常 星期一    
    2004-10-04      12:55:11   正常 星期一    
    2004-10-04      17:59:11   旷工 星期一    
    2004-10-05      7:46:18    正常 星期二    
    2004-10-05      11:40:15   正常 星期二    
    2004-10-05      12:27:15   旷工 星期二    
    2004-10-05      18:39:49   旷工 星期二    
    2004-10-06      20:24:51   旷工 星期三    
    2004-10-07      7:44:07    正常 星期四    
    2004-10-07      11:44:33   正常 星期四    
    2004-10-07      12:33:13   正常 星期四    
    2004-10-07      17:57:27   旷工 星期四    
    2004-10-08      7:58:45    正常 星期五    
    2004-10-08      17:15:40   正常 星期五    
    2004-10-09      8:03:23    旷工 星期六    
    2004-10-09      12:55:41   正常 星期六    
    2004-10-09      18:19:41   旷工 星期六    
    2004-10-11      7:55:06    正常 星期一    
    2004-10-12      7:58:09    正常 星期二    
    2004-10-12      11:35:51   正常 星期二    
    2004-10-12      12:40:20   正常 星期二    
    2004-10-12      19:13:13   旷工 星期二    
    2004-10-13      7:50:33    正常 星期三    
    2004-10-13      11:38:32   正常 星期三    
    2004-10-13      12:37:24   正常 星期三    
    2004-10-13      17:03:03   正常 星期三    
    2004-10-14      7:51:01    正常 星期四    
    2004-10-14      11:57:24   正常 星期四    
    2004-10-14      12:32:41   正常 星期四    
    2004-10-14      17:28:19   正常 星期四    
    2004-10-15      7:55:04    正常 星期五    
    2004-10-16      7:51:39    正常 星期六    
    2004-10-16      11:40:00   正常 星期六    
    2004-10-16      12:05:34   旷工 星期六    
    2004-10-16      17:42:41   旷工 星期六    
    日志表我只考了一部份,这样显示的时候我想必须按星期联合,把星期相同的正常刷卡时间段加上,
    id  ssj               esj   zt          rq             sj      xq//我刚才忘掉了
    1  17:00:00 17:40:00 旷工 2004-11-01      8:01:11   星期一
    6  7:30:00 8:00:00 正常 2004-11-02      12:57:14 星期二
    等等吧
    如果在同一天正常分配了四个时间段,而只刷了三次,也就是说只有三次的记录,那么就显示四条记录,最后一条记录的日志(B表)为NULL,而分配的四个时间段正常显示,如果刷了五次卡,就显示五条记录,最后一条记录的分配时间段(A表)为NULL,
    不知道明白了吗
      

  9.   

    只要两表按星期联合后不会有多余的记录就可以的,其他无所谓的
    不知道用ROLLUP能不能实现的
      

  10.   

    举个例子2004-10-11的日志指有一条记录
    2004-10-11      7:55:06    正常 星期一  
    查询后想得到  
    12:30:00 13:00:00  2004-10-11      7:55:06    正常 星期一  
    11:30:00 12:00:00  NULL            NULL       NULL    NULL  
    7:30:00  8:00:00 NULL            NULL       NULL    NULL
    17:00:00 17:40:00 NULL            NULL       NULL    NULL
    这样就可以的