一张表,名称为aa
id     rq
1     2008-01-01
2     2008-01-01
3     2008-01-01
4     2008-01-01
1     2008-12-01
2     2008-12-01
5     2008-12-01
我想查询的结果为
id    rq
3     2008-01-01
4     2008-01-01
5     2008-12-01
SQL语句该如何写?

解决方案 »

  1.   

    select id,rq from aa where count(id)<2
      

  2.   


    select id,rq,count(id) from aa where count(id)<2 group by id,rq
      

  3.   

    我只是举例子,ID列可能是文本类型的,并不是所有都小于2的
    一张表,名称为aa 
    id    rq 
    a    2008-01-01 
    b    2008-01-01 
    c    2008-01-01 
    d    2008-01-01 
    a    2008-12-01 
    b    2008-12-01 
    f    2008-12-01 
    我想查询的结果为 
    id    rq 
    c    2008-01-01 
    d    2008-01-01 
    f    2008-12-01 
    SQL语句该如何写?
      

  4.   


    select id ,rq from aa where id not in 
    (select id from aa group by id having count(id)>1)
    id      rq
    3 2008-01-01 00:00:00
    4 2008-01-01 00:00:00
    5 2008-12-01 00:00:00
      

  5.   


    select * from aa a where not exists(
        select * from aa where a.id=id and a.rq<>rq
    )
      

  6.   

    create table aa
    (uid int,
     rq smalldatetime)
      

  7.   

    好象还是不行,我想实现
    表aa
    id  name  date1
    101 张三   2008-12-01
    102 李司   2008-12-01
    103 李子   2008-12-01
    表bb
    id  name  date1
    101 张三   2008-01-01
    102 李司   2008-01-01
    105 王二   2008-01-01
    结果
    id1 name  date1
    103 李子   2008-12-01
    105 王二   2008-01-01
    sql语句如何写?
      

  8.   


    TRY:
    SELECT * FROM (
    select id,name,date1 from aa where id=(select max(id) from aa)
    union all
    select id,name,date1 from bb where id=(select max(id) from bb)
    )AA
      

  9.   


    DECLARE @AA TABLE(ID VARCHAR(10),NAME VARCHAR(20),DATE1 DATETIME)
    INSERT INTO @AA
    SELECT '101','张三','2008-12-01' UNION ALL
    SELECT '102','李司','2008-12-01' UNION ALL
    SELECT '103','李子','2008-12-01' DECLARE @BB TABLE(ID VARCHAR(10),NAME VARCHAR(20),DATE1 DATETIME)
    INSERT INTO @BB
    SELECT '101','张三','2008-01-01' UNION ALL
    SELECT '102','李司','2008-01-01' UNION ALL
    SELECT '105','王二','2008-01-01' SELECT * FROM (
    select id,[name],date1 from @aa where id=(select max(id) from @aa)
    union all
    select id,[name],date1 from @bb where id=(select max(id) from @bb)
    )AA----------result:
    /*
    103 李子 2008-12-01 00:00:00.000
    105 王二 2008-01-01 00:00:00.000
    */
      

  10.   

    楼上的好象没有理解我的意思,id是编号,并不是通过他的大小来比较的,我是想把两张表中名字不一样的人筛选出来
    表aa 
    id  name  date1 
    101 张三  2008-12-01 
    102 李司  2008-12-01 
    103 李子  2008-12-01 
    表bb 
    id  name  date1 
    101 张三  2008-01-01 
    102 李司  2008-01-01 
    105 王二  2008-01-01 
    结果 
    id1 name  date1 
    103 李子  2008-12-01 
    105 王二  2008-01-01 
    sql语句如何写?
      

  11.   

    还不一样啊 SELECT * FROM aa a where aa.name not exists(select * from bb b where a.name=b.name)
    union all
    SELECT * FROM bb a where aa.name not exists(select * from aa b where a.name=b.name)
      

  12.   

    select * from aa
    except
    select * from bb
      

  13.   


    create table #A(ID VARCHAR(10),NAME VARCHAR(20),DATE1 DATETIME)
    INSERT INTO #A
    SELECT '101','张三','2008-12-01' UNION ALL
    SELECT '102','李司','2008-12-01' UNION ALL
    SELECT '103','李子','2008-12-01' create table #b(ID VARCHAR(10),NAME VARCHAR(20),DATE1 DATETIME)
    INSERT INTO #b
    SELECT '101','张三','2008-01-01' UNION ALL
    SELECT '102','李司','2008-01-01' UNION ALL
    SELECT '105','王二','2008-01-01' select id,[name],date1 from #A where id not in (select id from #b)
    union all
    select id,[name],date1 from #b where id not in(select id from #A)
    drop table #a
    drop table #b-----结果-------
    103  李子 2008-12-01 00:00:00.000
    105  王二 2008-01-01 00:00:00.000
      

  14.   

    DECLARE @AA TABLE(ID VARCHAR(10),NAME VARCHAR(20),DATE1 DATETIME)
    INSERT INTO @AA
    SELECT '101','张三','2008-12-01' UNION ALL
    SELECT '102','李司','2008-12-01' UNION ALL
    SELECT '103','李子','2008-12-01' DECLARE @BB TABLE(ID VARCHAR(10),NAME VARCHAR(20),DATE1 DATETIME)
    INSERT INTO @BB
    SELECT '101','张三','2008-01-01' UNION ALL
    SELECT '102','李司','2008-01-01' UNION ALL
    SELECT '105','王二','2008-01-01' SELECT * FROM (
    select id,[name],date1 from @aa
    union 
    select id,[name],date1 from @bb )b where not exists(select 1 from @aa where [name]=b.[name])
    or  not exists(select 1 from @bb where [name]=b.[name])
      

  15.   

    1    2008-01-01 
    2    2008-01-01 
    3    2008-01-01 
    4    2008-01-01 
    1    2008-12-01 
    2    2008-12-01 
    5    2008-12-01 
    select * from table group by id having count(*)<2