结存数据问题
上月结存 本月金额 分公司 日期
10 0 广东深 2013-08
20 0 杭州 2013-08
30 0 合肥 2013-08
0 40 广东深 2013-09,上月结存应该 是10,下个月(10月)应该变成50
0 40 杭州 2013-09
0 40 合肥 2013-09
8月份的数据 是期初数据,2013-09是9月的统计(select 分公司,sum(金额) from 出库单 group by 分公司)。我想做的是结存表,怎么样把每个月的结存数据 存到上月结存 字段。
请指点,谢谢
------解决方案--------------------
WITH a1 AS
(
SELECT 上月结存,上月结存0=
ISNULL(
(SELECT SUM(上月结存+本月金额) FROM 表
WHERE 日期=CONVERT(CHAR(7),DATEADD(mm,-1,a.日期+'-01'),120) AND 分公司=a.分公司),0)
FROM 表 a
WHERE 日期='2013-09'
)
UPDATE a1 SET 上月结存=上月结存0
------解决方案--------------------(多余字段省略,楼主自己看实际需求吧)
一、库存表
日期 分公司 数量 产品编号
2013-09-01 广东 10 A01
(其他记录省略)
二、业务表
日期 分公司 数量 产品编号
2013-09-02 广东 35 A01
(其他记录省略)
三、程序逻辑
1、以2013-09-01作为上次盘点的库存(10个)
2、联合扫描库存表和业务表
——其中库存表中,指定日期为2013-09-01
——其中业务表中,日期>=2013-09-01
——group by 产品编号,分公司
——列表循环显示所有产品
——此处为第一循环
3、假设第一循环出来的A01记录