采用全月一次加权平均法计算单价,本月结存单价、数量、金额作为下月的期初,如此类推;
根据不同的查询起始日期和结束日期有不同的结果
注意:如果是调拨单的调入单价则必须取调出单价 视图:INSTORED 进仓单
仓库 单号 日期 货品 数量 单价 金额
STORE BC BD GOODS QTY PRICE AM
原料仓 IN001 2009-07-30 A001 300 20 6000 --7月份
原料仓 IN002 2009-07-29 B001 400 2 800
原料仓 IN101 2009-08-01 A001 30 20 600 --8月份
原料仓 IN103 2009-08-20 A001 50 22 1100
原料仓 IN203 2009-08-25 A001 20 23 460
原料仓 IN123 2009-08-26 B001 300 2 600 原料仓 IN123 2009-09-01 A001 500 21 10500 ---9月份进仓
原料仓 IN125 2009-09-20 B001 500 2.2 1100 半成仓 OU129 2009-09-25 B001 23 0 0 ---此为调拨调入 单号相同 这里没有单价 视图:OUTSTORED 出仓单
原料仓 OU100 2009-08-26 A001 30 0 0 --8月份出仓
原料仓 OU202 2009-08-27 B001 20 0 0
原料仓 OU132 2009-08-29 B001 40 0 0 原料仓 OU211 2009-09-08 A001 100 0 0 ---9月份出仓
原料仓 OU213 2009-09-27 B001 120 0 0
原料仓 OU129 2009-09-25 B001 23 0 0 ---此为调拨调出 单号相同
求结果如下有2点:
1/第一种方案 (希望能做成函数)
(@FROMDATE DATETIME, @TODATE DATETIME) ---查询 ('2009-08-01','2009-08-31')
仓库 货品 期初数量 期初单价 期初金额 收入数量 收入单价 收入金额 发出数量 发出单价 发出金额 结存数量 结存单价 结存金额
STORE GOODS SQT SPRICE SAM IQT IPRICE IAM OQT OPRICE OAM EQT EPRICE EAM
原料仓 A001 300 20 6,000.00 100 21.6 2,160.00 70 20.4 1,428.00 330 20.4 6,732.00
原料仓 B001 400 2 800 300 2 600 20 2 40 680 2 1,360.00 (@FROMDATE DATETIME, @TODATE DATETIME) ---查询 ('2009-09-01','2009-08-30')
仓库 货品 期初数量 期初单价 期初金额 收入数量 收入单价 收入金额 发出数量 发出单价 发出金额 结存数量 结存单价 结存金额
STORE GOODS SQT SPRICE SAM IQT IPRICE IAM OQT OPRICE OAM EQT EPRICE EAM
原料仓 A001 330 20.4 6,732.00 500 21 10,500.00 100 20.761 2,076.14 730 20.761 15,155.86
原料仓 B001 680 2 1,360.00 500 2.2 1,100.00 143 2.085 298.12 1,037 2.085 2,161.88 半成仓 B001 0 0 0 23 2.085 47.95 0 0 0 23 2.085 47.95 2/求把计算出来的当天的发出单价回填到出仓单和进仓单(调拨单)
http://topic.csdn.net/u/20090917/19/7158B12A-585F-497B-8A01-7AD17A951B14.html
---2/求把计算出来的当天的发出单价回填到出仓单和进仓单(调拨单)--还有问题:(1)回填:意思是要我更新原表吗? -----不回填也行,在最终报表能显示就行了 --(2)何谓“当天”的,这个单价到底是按哪个日期来计算
--是按单据的日期?还是按你输入参数的哪个日期?----是按开始日期和结束日期 计算出
半成仓 OU129 2009-09-25 B001 23 0 0 ---此为调拨调入 单号相同 这里没有单价 原料仓 OU129 2009-09-25 B001 23 0 0 ---此为调拨调出 单号相同
EXEC test_proc '2009-08-01','2009-08-31'
------------------------------------------------
仓库 货品 期初数量 期初单价 期初金额 收入数量 收入单价 收入金额 发出数量 发出单价 发出金额 结存数量 结存单价 结存金额
原料仓 A001 300 20.000 6000.000 100 21.600 2160.000 30 20.400 612.000 370 20.400 7548.000
原料仓 B001 400 2.000 800.000 300 2.000 600.000 60 2.000 120.000 640 2.000 1280.000
EXEC test_proc '2009-08-01','2009-08-31'
------------------------------------------------
仓库 货品 期初数量 期初单价 期初金额 收入数量 收入单价 收入金额 发出数量 发出单价 发出金额 结存数量 结存单价 结存金额
原料仓 A001 300 20.000 6000.000 100 21.600 2160.000 30 20.400 612.000 370 20.400 7548.000
原料仓 B001 400 2.000 800.000 300 2.000 600.000 60 2.000 120.000 640 2.000 1280.000
(@FROMDATE DATETIME, @TODATE DATETIME) ---查询 ('2009-08-01','2009-08-31')
仓库 货品编码 期初数量 期初单价 期初金额 收入数量 收入单价 收入金额 发出数量 发出单价 发出金额 结存数量 结存单价 结存金额
原料仓 A001 300 20 6,000.00 100 21.6 2,160.00 30 20.4 612 370 20.4 7,548.00
原料仓 B001 400 2 800 300 2 600 60 2 120 640 2 1,280.00(@FROMDATE DATETIME, @TODATE DATETIME) ---查询 ('2009-0901','2009-08-30)
仓库 货品编码 期初数量 期初单价 期初金额 收入数量 收入单价 收入金额 发出数量 发出单价 发出金额 结存数量 结存单价 结存金额
原料仓 A001 370 20.4 7,548.00 500 21 10,500.00 100 20.745 2,074.48 770 20.745 15,973.52
原料仓 B001 640 2 1,280.00 500 2.2 1,100.00 143 2.088 298.55 997 2.088 2,081.45
半成品仓 B001 0 0 0 23 2.088 48.02 0 0 0 23 2.088 48.02
(@FROMDATE DATETIME, @TODATE DATETIME) ---查询 ('2009-08-01','2009-08-31')
仓库 货品编码 期初数量 期初单价 期初金额 收入数量 收入单价 收入金额 发出数量 发出单价 发出金额 结存数量 结存单价 结存金额
原料仓 A001 300 20 6,000.00 100 21.6 2,160.00 30 20.4 612 370 20.4 7,548.00
原料仓 B001 400 2 800 300 2 600 60 2 120 640 2 1,280.00 (@FROMDATE DATETIME, @TODATE DATETIME) ---查询 ('2009-0901','2009-08-30)
仓库 货品编码 期初数量 期初单价 期初金额 收入数量 收入单价 收入金额 发出数量 发出单价 发出金额 结存数量 结存单价 结存金额
原料仓 A001 370 20.4 7,548.00 500 21 10,500.00 100 20.745 2,074.48 770 20.745 15,973.52
原料仓 B001 640 2 1,280.00 500 2.2 1,100.00 143 2.088 298.55 997 2.088 2,081.45 半成品仓 B001 0 0 0 23 2.088 48.02 0 0 0 23 2.088 48.02