select month(日期) sum(数量) from 表 group by month(日期) --试试看

解决方案 »

  1.   


    Select 年,月,货号,SUM(数量) As 数量 from
    (Select Year(日期) As 年,Month(日期) As 月,货号,数量 from TableName) A Group By 年,月,货号
      

  2.   

    不好意思 上面错了
    select month(日期),货号,sum(数量) from 表 group by month(日期),货号
      

  3.   


    加上排序
    Select 年,月,货号,SUM(数量) As 数量 from
    (Select Year(日期) As 年,Month(日期) As 月,货号,数量 from TableName) A 
    Group By 年,月,货号
    Order By 年,月,货号一楼的语句不行的。
    另外,楼主给的数据有点问题,数据中有B的数量,怎么统计全是A的??
      

  4.   

    Select Distinct 
    Year(日期) As 年,
    Month(日期) As 月,
    货号,
    (Select SUM(数量) from TableName Where Convert(Varchar(6),日期,112)<=Convert(Varchar(6),A.日期,112) And 货号=A.货号)As 数量
    from TableName  A
    Order By 年,月,货号
      

  5.   

    to: paoluo(一天到晚游泳的鱼)
    这样不对的,SQL会提示
    列 'A.日期'在选择列表中无效,因为该列既不包含在聚合函数中,也不包含在 GROUP BY 子句中。
    如果要是将A.日期加到group by 后,显然是错的,怎么办啊
      

  6.   

    你用的是我写的哪个语句啊??我的第二个语句没有Group By  啊
      

  7.   

    --建立测试环境
    Create Table TEST
    (日期 Varchar(10),
     货号 Varchar(10),
     数量 Int)
    --插入数据
    Insert TEST Values('2005-1-1',         'A',        20)
    Insert TEST Values('2005-1-2',         'A',        20)
    Insert TEST Values('2005-1-3',         'A',        30)
    Insert TEST Values('2005-4-3',         'A',        50)
    Insert TEST Values('2005-5-3',         'A',        60)
    --测试
    Select Distinct 
    Year(日期) As 年,
    Month(日期) As 月,
    货号,
    (Select SUM(数量) from TEST Where Convert(Varchar(6),日期,112)<=Convert(Varchar(6),A.日期,112) And 货号=A.货号)As 数量
    from TEST  A
    Order By 年,月,货号
    --删除测试环境
    Drop Table TEST
    --结果
    /*
    年 月 货号 数量
    2005 1 A 70
    2005 4 A 120
    2005 5 A 180
    */