数据库里的数据 如下演示3 2010-03-09 18:58:19.380 湖北省,武汉市,市辖区;
演示3 2010-03-09 18:58:24.867 湖北省,武汉市,市辖区;
演示3 2010-03-09 18:58:30.053 湖北省,武汉市,市辖区;
演示3 2010-03-09 18:58:35.740 湖北省,武汉市,市辖区;
演示3 2010-03-09 18:58:41.053 湖北省,武汉市,市辖区;
演示3 2010-03-09 18:58:46.693 湖北省,武汉市,新洲区;
演示3 2010-03-09 18:58:52.083 湖北省,武汉市,新洲区;
演示3 2010-03-09 18:58:57.663 湖北省,武汉市,新洲区;
演示3 2010-03-09 19:22:45.200 湖北省,武汉市,市辖区;
演示3 2010-03-09 23:03:43.170 湖北省,武汉市,市辖区;
演示3 2010-03-10 00:34:11.060 湖北省,武汉市,市辖区;
演示3 2010-03-10 10:15:18.887 湖北省,武汉市,市辖区;
演示3 2010-03-10 11:21:45.717 湖北省,武汉市,市辖区;
使用SQL查询怎样才能显示如下演示3 2010-03-09 18:58:19.380 2010-03-09 18:58:41.053 湖北省,武汉市,市辖区;
演示3 2010-03-09 18:58:46.693 2010-03-09 18:58:57.663 湖北省,武汉市,新洲区;
演示3 2010-03-09 19:22:45.200 2010-03-10 11:21:45.717 湖北省,武汉市,市辖区;

解决方案 »

  1.   

    select * from tb t where not exists(select 1 from tb where 地区=t.地区 and 时间>t.时间)
      

  2.   

    SELECT DEMONAME,MAX(DEMOTIME) AS DTIME ,PRINCE FROM TB GROUP BY DEMONAME,DEMOTIME,PRINCE 
      

  3.   

    ----------------------------------------------------------------
    -- Author  :SQL77(只为思齐老)
    -- Date    :2010-03-10 13:46:30
    -- Version:
    --      Microsoft SQL Server  2000 - 8.00.194 (Intel X86) 
    -- Aug  6 2000 00:57:48 
    -- Copyright (c) 1988-2000 Microsoft Corporation
    -- Desktop Engine on Windows NT 5.1 (Build 2600: Service Pack 3)
    --
    ----------------------------------------------------------------
    --> 测试数据:#TB
    if object_id('tempdb.dbo.#TB') is not null drop table #TB
    go 
    create table #TB([A] varchar(5),[C2] datetime,[C3] varchar(21))
    insert #TB
    select '演示3','2010-03-09 18:58:19.380','湖北省,武汉市,市辖区;' union all
    select '演示3','2010-03-09 18:58:24.867','湖北省,武汉市,市辖区;' union all
    select '演示3','2010-03-09 18:58:30.053','湖北省,武汉市,市辖区;' union all
    select '演示3','2010-03-09 18:58:35.740','湖北省,武汉市,市辖区;' union all
    select '演示3','2010-03-09 18:58:41.053','湖北省,武汉市,市辖区;' union all
    select '演示3','2010-03-09 18:58:46.693','湖北省,武汉市,新洲区;' union all
    select '演示3','2010-03-09 18:58:52.083','湖北省,武汉市,新洲区;' union all
    select '演示3','2010-03-09 18:58:57.663','湖北省,武汉市,新洲区;' union all
    select '演示3','2010-03-09 19:22:45.200','湖北省,武汉市,市辖区;' union all
    select '演示3','2010-03-09 23:03:43.170','湖北省,武汉市,市辖区;' union all
    select '演示3','2010-03-10 00:34:11.060','湖北省,武汉市,市辖区;' union all
    select '演示3','2010-03-10 10:15:18.887','湖北省,武汉市,市辖区;' union all
    select '演示3','2010-03-10 11:21:45.717','湖北省,武汉市,市辖区;'
    --------------开始查询--------------------------
    SELECT * ,0 AS C INTO #T FROM #TB
    DECLARE @A varchar(5),@C3 varchar(21),@V INT
    SET @A=''
    SET @C3=''
    SET @V=0
    UPDATE #T SET C=@V,@V=CASE WHEN @A=A AND @C3=C3 THEN @V ELSE @V+1 END,@A=A , @C3=C3SELECT A,MIN(C2)C2,MAX(C2)C2,C3 FROM #T GROUP BY A,C3,C--DROP TABLE #t
    ----------------结果----------------------------
    /* 
    A     C2                                                     C2                                                     C3                    
    ----- ------------------------------------------------------ ------------------------------------------------------ --------------------- 
    演示3   2010-03-09 18:58:19.380                                2010-03-09 18:58:41.053                                湖北省,武汉市,市辖区;
    演示3   2010-03-09 19:22:45.200                                2010-03-10 11:21:45.717                                湖北省,武汉市,市辖区;
    演示3   2010-03-09 18:58:46.693                                2010-03-09 18:58:57.663                                湖北省,武汉市,新洲区;(所影响的行数为 3 行)
    */