【发布时间】:2021-09-16 05:52:30
【问题描述】:
我有一个库存交易表。我想用每行的平均方法计算 COGS
CREATE TABLE [dbo].[SampleData]
(
[date] [datetime] NULL,
[product_id] [varchar](15) NULL,
[Qty] [decimal](18,2) NULL,
[price] [money] NULL,
[progress] [varchar](10) NULL,
)
INSERT INTO sampledata VALUES ('20170228', 'SLG00034', 86.5, 3300, 'IN')
INSERT INTO sampledata VALUES ('20170307', 'SLG00034', -5, 0, 'OUT')
INSERT INTO sampledata VALUES ('20170312', 'SLG00034', -1, 0, 'OUT')
INSERT INTO sampledata VALUES ('20170318', 'SLG00034', -1, 0, 'OUT')
INSERT INTO sampledata VALUES ('20170511', 'SLG00034', 100, 3380, 'IN')
INSERT INTO sampledata VALUES ('20170518', 'SLG00034', -0.5, 0, 'OUT')
INSERT INTO sampledata VALUES ('20170522', 'SLG00034', -2, 0, 'OUT')
INSERT INTO sampledata VALUES ('20170604', 'SLG00034', -2, 0, 'OUT')
INSERT INTO sampledata VALUES ('20180606', 'SLG00034', 20, 6000, 'IN')
INSERT INTO sampledata VALUES ('20180720', 'SLG00034', -0.5, 0, 'OUT')
INSERT INTO sampledata VALUES ('20180728', 'SLG00034', -4, 0, 'OUT')
INSERT INTO sampledata VALUES ('20180827', 'SLG00034', -4, 0, 'OUT')
INSERT INTO sampledata VALUES ('20180907', 'SLG00034', -1, 0, 'OUT')
INSERT INTO sampledata VALUES ('20191213', 'SLG00034', 10, 7000, 'IN')
INSERT INTO sampledata VALUES ('20200710', 'SLG00034', 20, 4500, 'IN')
INSERT INTO sampledata VALUES ('20200926', 'SLG00034', -0.5, 0, 'OUT')
INSERT INTO sampledata VALUES ('20201004', 'SLG00034', -215, 0, 'OUT')
期望的输出:
https://i.stack.imgur.com/h4QNH.png
任何人请帮忙,我无法像上图那样计算出平均成本
编辑
我需要用规则计算每一行的收盘平均成本:
- (未结金额 + 入金额)÷(未结单位 + 入单位)= 每单位平均成本
- 单位平均成本 * 售出单位 = 售出商品成本
- 单位平均成本 * 期末单位 = 期末库存量
我们将在下一行用作期初金额的期末库存金额
我们将在下一行用作开始单位的闭合单位
【问题讨论】:
-
根据问题指南,请不要发布代码、数据、错误消息等的图像 - 将文本复制或输入到问题中。请保留将图像用于图表或演示渲染错误,无法通过文本准确描述的事情。
-
您提供了所需的输出,但没有描述规则。我们是否应该开发 some 算法来显示此源数据的数据?这很简单:只需从无到有选择常量,但我认为这不是您想要的。请更新您的问题并描述如何计算您想要的内容以及当前尝试的问题
标签: sql sql-server tsql