我有一个这样的交易记录流水号,时间,价格,标志我想对每天的前N笔交易中标志为成功的交易求和,应该怎么建立查询?

解决方案 »

  1.   

    select case when 标识='成功' then 价格 else 0 end as 价格汇总
    from tablename
    where 时间……
      

  2.   

    select 流水号,时间,价格,标志, sum(价格) as 价格 from 交易记录
    where 流水号 in (select top 100 流水号 from 交易记录) and ....
      

  3.   

    select 流水号,时间,价格,标志, sum(价格) as 价格 from 交易记录
    where 流水号 in (select top 100 流水号 from 交易记录 where 标志="成功")
      

  4.   

    select top N sum(qty_price) as total from 表名
    --N为记录数
      

  5.   

    select top N sum(价格) as total from 表名
    where 标志 = '成功'
    --N为记录数
      

  6.   

    select convert(varchar(10), a.时间, 121) 日期, sum(a.价格) as 交易和
    from 交易记录 a
    where 时间 between 开始时间 and 结束时间 
    and (select count(1) 
         from 交易记录 
         where convert(varchar(10), 时间, 121) = convert(varchar(10), 时间, 121)
         and 标识 = '成功' and 流水号 < a.流水号) < 100 这样???
      

  7.   

    select convert(varchar(10), a.时间, 121) 日期, sum(a.价格) as 交易和
    from 交易记录 a
    where 时间 between 开始时间 and 结束时间 
    and (select count(1) 
         from 交易记录 
         where convert(varchar(10), 时间, 121) = convert(varchar(10), 时间, 121)
         and 标识 = '成功' and 流水号 < a.流水号) < 100
    group by convert(varchar(10), a.时间, 121)
      

  8.   

    更正一下
    select 年月=convert(varchar(6),getdate(),112), sum(a.价格) as 交易和
    from 交易记录 a
    where 时间 between 开始时间 and 结束时间 
    and 流水号 in (select  top 2 流水号 
         from 交易记录 
         where convert(varchar(6),getdate(),112) = convert(varchar(6),getdate(),112)
         and 标识 = '成功' order by 流水号 asc)
    order by 年月
      

  9.   

    select 年月=convert(varchar(6),getdate(),112), sum(a.价格) as 交易和
    from 交易记录 a
    where 时间 between 开始时间 and 结束时间 
    and 流水号 in (select  top 2 流水号 
         from 交易记录 
         where convert(varchar(6),getdate(),112) = convert(varchar(6),getdate(),112)
         and 标识 = '成功' order by 流水号 asc) group by 年月
    order by 年月
      

  10.   

    select 年月=convert(varchar(6),getdate(),112), sum(a.价格) as 交易和
    from 交易记录 a
    where 时间 between 开始时间 and 结束时间 
    and 流水号 in (select  top 2 流水号 
         from 交易记录 
         where convert(varchar(6),getdate(),112) = convert(varchar(6),getdate(),112)
         and 标识 = '成功' order by 流水号 asc) group by convert(varchar(6),getdate(),112)--用组的方式
    order by 年月
      

  11.   

    SELECT convert(varchar(10),时间,120) as 时间,sum(价格) as 交易和
    FROM table as a 
    WHERE 
        标志 = '成功' and 
        时间 between '起始日期值' end '截止日期值' and
        流水号 in 
        (select top 2 流水号 from table    /*在此指定每天前2条件交易成功记录*/
        where 
        标志 = '成功' and 
        时间 between '起始日期值' end '截止日期值' and
        convert(varchar(10),时间,120) = convert(varchar(10),a.时间,120) 
        order by 流水号)
    GROUP BY convert(varchar(10),时间,120)