定单表Orders,有一字段“价格”,有一字段“地区”,要求统计某一个“地区”一个月内每天所有定单“价格”的总和。注:每个月天数不一样形如:
2009-4-1 100 地区一
2009-4-2 150 地区一
2009-4-3 130 地区一这样的统计能用一个sql搞定吗?

解决方案 »

  1.   

    select sum(价格) as 价格,日期 from 表 where 地区='地区一' group by 日期,地区
      

  2.   

    select 日期,sum(价格),地区
      from orders
     group by 日期,地区
     having 条件
      

  3.   

    group by datename(day,日期),地区
      

  4.   

    select CONVERT(NVARCHAR(6), 日期, 112) as 月份, sum(价格) as 价格 from 表 where 地区='地区一' Group by CONVERT(NVARCHAR(6), 日期, 112)这是统计某一个地区,每个月的价格总额,
    如果要统计每个地区的每个月的价格总额,就要这样了select 地区, CONVERT(NVARCHAR(6), 日期, 112) as 月份, sum(价格) as 价格 from 表 Group by 地区, CONVERT(NVARCHAR(6), 日期, 112)
      

  5.   


    试试这个,看看是不是你要的结果declare @tb table(日期 datetime,价格 float,地区 nvarchar(5))insert into @tb 
    select '2008-08-01 8:20:25:200',16,'地区一'
    union all select '2008-08-01 8:21:55:200',16,'地区一'
    union all select '2008-08-01 8:30:25:200',12,'地区一'
    union all select '2008-08-01 8:40:25:200',10,'地区二'
    union all select '2008-08-02 8:20:25:200',9,'地区一'
    union all select '2008-08-02 10:20:25:200',11,'地区一'
    union all select '2008-08-03 8:20:25:200',12,'地区一'
    union all select '2008-08-03 9:20:25:200',19,'地区一'
    union all select '2008-08-03 21:20:25:200',9,'地区二'
    union all select '2008-08-03 22:20:25:200',10,'地区二'--select * from @tbselect CONVERT(NVARCHAR(10), 日期, 120) as 月份, sum(价格) as 价格,'地区一' as 地区 from @tb where 地区='地区一' Group by CONVERT(NVARCHAR(10), 日期, 120) select CONVERT(NVARCHAR(10), 日期, 120) as 月份, sum(价格) as 价格,'地区二' as 地区 from @tb where 地区='地区二' Group by CONVERT(NVARCHAR(10), 日期, 120) 
      

  6.   

    8楼的就可以,按convert(varchar(10),day,120) 分组就可以了