Select 年,月,货号,SUM(数量) As 数量 from (Select Year(日期) As 年,Month(日期) As 月,货号,数量 from TableName) A Group By 年,月,货号
不好意思 上面错了 select month(日期),货号,sum(数量) from 表 group by month(日期),货号
加上排序 Select 年,月,货号,SUM(数量) As 数量 from (Select Year(日期) As 年,Month(日期) As 月,货号,数量 from TableName) A Group By 年,月,货号 Order By 年,月,货号一楼的语句不行的。 另外,楼主给的数据有点问题,数据中有B的数量,怎么统计全是A的??
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 年,月,货号
to: paoluo(一天到晚游泳的鱼) 这样不对的,SQL会提示 列 'A.日期'在选择列表中无效,因为该列既不包含在聚合函数中,也不包含在 GROUP BY 子句中。 如果要是将A.日期加到group by 后,显然是错的,怎么办啊
你用的是我写的哪个语句啊??我的第二个语句没有Group By 啊
--建立测试环境 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 */
Select 年,月,货号,SUM(数量) As 数量 from
(Select Year(日期) As 年,Month(日期) As 月,货号,数量 from TableName) A Group By 年,月,货号
select month(日期),货号,sum(数量) from 表 group by month(日期),货号
加上排序
Select 年,月,货号,SUM(数量) As 数量 from
(Select Year(日期) As 年,Month(日期) As 月,货号,数量 from TableName) A
Group By 年,月,货号
Order By 年,月,货号一楼的语句不行的。
另外,楼主给的数据有点问题,数据中有B的数量,怎么统计全是A的??
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 年,月,货号
这样不对的,SQL会提示
列 'A.日期'在选择列表中无效,因为该列既不包含在聚合函数中,也不包含在 GROUP BY 子句中。
如果要是将A.日期加到group by 后,显然是错的,怎么办啊
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
*/