金额     会员号            交易时间 
4000 sz000015 2013-05-07 17:02:20.240 1
5500 sz000015 2013-05-07 18:08:55.070 2
6000 sz000015 2013-05-10 00:00:00.000 3
4600 sz000016 2013-05-09 19:48:00.760 1
7600 sz000016 2013-05-09 19:48:00.760 1
数据内容如上:
求SQL,能够按照会号分组,同时,合计金额最先超过5000时的交易时间如:纪录结果如下:(注,每个会员最先消费的合计金额超过5000的时间)
sz000015 2013-05-07 18:08:55.070 2   
sz000016 2013-05-09 19:48:00.760 1
SQL语名

解决方案 »

  1.   

    with cte(金额,会员号,交易时间)
    as
    (
       select 4000,'sz000015','2013-05-07 17:02:20.240' union
       select 5500, 'sz000015','2013-05-07 18:08:55.070' union
       select 6000,'sz000015',' 2013-05-10 00:00:00.000' union
       select 4600, 'sz000016','2013-05-09 19:48:00.760' union 
       select 7600, 'sz000016','2013-05-09 19:48:00.760'
    )
    select t1.会员号,min(t1.交易时间)
    from
    cte as t1 inner join
    (
    select cte.会员号,cte.交易时间,MIN(金额)金额
    from
    cte 
    where cte.金额>5000
    group by cte.会员号,cte.交易时间
    )t2
    on t1.会员号=t2.会员号 and t1.金额=t2.金额 
    group by t1.会员号