每个月月底当天出月平均,如何算到当月月底的日平均会效率些呢?(当前月底是哪个月要从取得的数据中判断,二月份还分平年闰年)例如:
日期         月平均
20120131       100
20120229       200
20120331       110
则到当前月底日平均为(100*31+200*29+110*31)/(31+29+31)如何写sql语句可以效率些算日平均.

解决方案 »

  1.   


    --> 测试数据:[tbl]
    go
    if object_id('[tbl]') is not null 
    drop table [tbl]
    go
    create table [tbl](
    [日期] datetime,
    [月平均] int
    )
    go
    insert [tbl]
    select '20120131',100 union all
    select '20120229',200 union all
    select '20120331',110go
    select SUM(DATEPART(dd,[日期])*[月平均])
    /SUM(DATEPART(dd,[日期])) as 到当前月底日平均为
    from tbl where [日期]<=GETDATE()/*
    到当前月底日平均为
    148
    */
      

  2.   

    select SUM(
    DATEPART(dd,[日期])*[月平均]--此处求你当月天数*月平均数
    )--求和(按照你的公式来的)
    /SUM(DATEPART(dd,[日期])) as 到当前月底日平均为
    from tbl where [日期]<=GETDATE()