日期 姓名 销售额
2009-4-7 张三 111
2009-4-7 李四 112
2009-4-7 王五 113
2007-4-7 张三 1
2007-4-8 李四 2
2007-4-9 王五 3
2008-4-1 张三 11
2008-4-2 李四 12结果应该是:
2009-4-7 张三 111
2009-4-7 李四 112
2009-4-7 王五 113

解决方案 »

  1.   


    -->> Author:  让你望见影子的墙(HEROWANG)生成测试数据  Date:2009-04-08 07:29:06
    IF OBJECT_ID('tb') IS NOT NULL 
        DROP TABLE tb
    Go
    CREATE TABLE tb(日期 SMALLDATETIME,姓名 NVARCHAR(2),销售额 INT)
    Go
    INSERT INTO tb
     SELECT '2009-4-7','张三',111 UNION ALL
     SELECT '2009-4-7','李四',112 UNION ALL
     SELECT '2009-4-7','王五',113 UNION ALL
     SELECT '2007-4-7','张三',1 UNION ALL
     SELECT '2007-4-8','李四',2 UNION ALL
     SELECT '2007-4-9','王五',3 UNION ALL
     SELECT '2008-4-1','张三',11 UNION ALL
     SELECT '2008-4-2','李四',12 
    GOSELECT  * FROM TBselect 日期 , 姓名, 销售额=sum(销售额)
    from tb t
    where not exists(select 1 from tb where 姓名=t.姓名 and 日期>t.日期)
    group by 日期 , 姓名日期                      姓名   销售额
    ----------------------- ---- -----------
    2009-04-07 00:00:00     李四   112
    2009-04-07 00:00:00     王五   113
    2009-04-07 00:00:00     张三   111(3 行受影响)
      

  2.   


    CREATE TABLE tb(rq varchar(50),xm varchar(50),xse int)
    Go
    INSERT INTO tb
     SELECT '2009-4-7','zs',111 UNION ALL
     SELECT '2009-4-7','ls',112 UNION ALL
     SELECT '2009-4-7','ww',113 UNION ALL
     SELECT '2007-4-7','zs',1 UNION ALL
     SELECT '2007-4-8','ls',2 UNION ALL
     SELECT '2007-4-9','ww',3 UNION ALL
     SELECT '2008-4-1','zs',11 UNION ALL
     SELECT '2008-4-2','ls',12 
    GO
    select rq , xm, xse from tb t
    where not exists(select 1 from tb where xm=t.xm and rq>t.rq)