select DATENAME(year,OrderCloseTime) + '-' + convert(varchar(2),datepart(month,OrderCloseTime)) + '-'+convert(varchar(2),datepart(day,OrderCloseTime))  as OrderCloseTime
, sum(getMoney) as Money
from table
group by DATENAME(year,OrderCloseTime) +  '-' + convert(varchar(2),datepart(month,OrderCloseTime))+'-'+convert(varchar(2),datepart(day,OrderCloseTime))
order by DATENAME(year,OrderCloseTime) +  '-' + convert(varchar(2),datepart(month,OrderCloseTime))+'-'+convert(varchar(2),datepart(day,OrderCloseTime))
现在我只把每天的 Money 汇总了,但是我是要把 每天的Money  + 每天以前的的Money 汇总到这天。大神们,我知道很简单的,可是我想不到啊。

解决方案 »

  1.   

    try
    select
      convert(varchar(10),OrderCloseTime,120) as OrderCloseTime,
      (select sum(getMoney) from tb where convert(varchar(10),OrderCloseTime,120)<=convert(varchar(10),t.OrderCloseTime,120))
    from tb t
    group by convert(varchar(10),OrderCloseTime,120)
      

  2.   


    你好像把所有时间的都sum 了
      

  3.   

    有这个条件convert(varchar(10),OrderCloseTime,120)<=convert(varchar(10),t.OrderCloseTime,120) 
    只sum小于等于统计日的值
      

  4.   


    我这样写,你看看:select DATENAME(year,OrderCloseTime) + '-' + convert(varchar(2),datepart(month,OrderCloseTime)) + '-'+convert(varchar(2),datepart(day,OrderCloseTime))  as OrderCloseTime
    , (select  sum(getOrderTakeProfit) from BusinessTransactionHistory where 
    convert(varchar(10),OrderCloseTime,120)<=convert(varchar(10),t.OrderCloseTime,120)
    )
    from BusinessTransactionHistory t
    --where strategies_FX_mainFormID=6
    group by DATENAME(year,OrderCloseTime) +  '-' + convert(varchar(2),datepart(month,OrderCloseTime))+'-'+convert(varchar(2),datepart(day,OrderCloseTime))
    order by DATENAME(year,OrderCloseTime) +  '-' + convert(varchar(2),datepart(month,OrderCloseTime))+'-'+convert(varchar(2),datepart(day,OrderCloseTime))报错是
    消息 8120,级别 16,状态 1,第 1 行
    列 't.OrderCloseTime' 在选择列表中无效,因为该列既不包含在聚合函数中,也不包含在 GROUP BY 子句中。应该怎么写啊。
      

  5.   

    最好给出完整的表结构,测试数据,计算方法和正确结果.否则耽搁的是你宝贵的时间。
    如果有多表,表之间如何关联?
    发帖注意事项
    http://topic.csdn.net/u/20091130/21/fb718680-98ff-4afb-98d8-cff2f8293ed5.html?24281
      

  6.   

    根据 josy 跟新出的sqlselect  convert(varchar(10),OrderCloseTime,120) as Time
    , sum(getOrderTakeProfit) as Profit
    from BusinessTransactionHistory
    group by convert(varchar(10),OrderCloseTime,120)
    order by convert(varchar(10),OrderCloseTime,120)time             Profit
    2010-04-16 -276.00
    2010-05-11 14.00
    2010-05-12 0.00
    2010-05-13 10.00
    2010-05-17 14.00
    2010-05-18 19.00
    2010-05-20 16.00想要的数据
    time           ALlProfit
    2010-04-16 -276.00
    2010-05-11 -262.00
    2010-05-12 -262.00
    2010-05-13 -252.00
    2010-05-17 -238.00
    2010-05-18 -219.00
    2010-05-20 -203.00
      

  7.   

    create table tb(time datetime,Profit decimal(18,2))
    insert into tb values('2010-04-16', -276.00)
    insert into tb values('2010-05-11', 14.00)
    insert into tb values('2010-05-12', 0.00)
    insert into tb values('2010-05-13', 10.00)
    insert into tb values('2010-05-17', 14.00)
    insert into tb values('2010-05-18', 19.00)
    insert into tb values('2010-05-20', 16.00)
    goselect time , (select sum(Profit) from tb where time <= t.time) from tb tdrop table tb/*
    time                                                                                            
    ------------------------------------------------------ ---------------------------------------- 
    2010-04-16 00:00:00.000                                -276.00
    2010-05-11 00:00:00.000                                -262.00
    2010-05-12 00:00:00.000                                -262.00
    2010-05-13 00:00:00.000                                -252.00
    2010-05-17 00:00:00.000                                -238.00
    2010-05-18 00:00:00.000                                -219.00
    2010-05-20 00:00:00.000                                -203.00(所影响的行数为 7 行)
    */
      

  8.   


    测试代码select  convert(varchar(10),OrderCloseTime,120) as OrderCloseTime,
      (select sum(getOrderTakeProfit) from BusinessTransactionHistory where convert(varchar(10),OrderCloseTime,120)<=convert(varchar(10),t.OrderCloseTime,120))
    from BusinessTransactionHistory t
    group by convert(varchar(10),OrderCloseTime,120)
    测试结果:
    内部 SQL Server 错误。
      

  9.   


    改下插入数据
    insert into tb values('2010-04-16 01:00:00', -176.00)
    insert into tb values('2010-04-16 02:00:00', -100.00)
    insert into tb values('2010-05-11 01:00:00'', -14.00)
    insert into tb values('2010-05-11 05:00:00'', 28.00)
    insert into tb values('2010-05-12 03:00:00'', 4.00)
    insert into tb values('2010-05-12 05:00:00'', -4.00)
    insert into tb values('2010-05-13', 10.00)
    insert into tb values('2010-05-17', 14.00)
    insert into tb values('2010-05-18', 19.00)
    insert into tb values('2010-05-20', 16.00)