某表有字段:交易日期 产品代码 买入卖出标识 单价 数量 总价 ,计算每一日的加权成本用sql
时间: 2024-03-12 07:46:04 浏览: 73
SQL中的case…when…还能这么用(计算好评率、计算出有条件的字段的数量)
好的,您可以使用以下 SQL 语句来计算每一日的加权成本:
```
SELECT 交易日期,
产品代码,
SUM(CASE WHEN 买入卖出标识 = '买入' THEN 总价 ELSE -总价 END) OVER(PARTITION BY 产品代码 ORDER BY 交易日期) / SUM(CASE WHEN 买入卖出标识 = '买入' THEN 数量 ELSE -数量 END) OVER(PARTITION BY 产品代码 ORDER BY 交易日期) AS 加权成本
FROM 表名;
```
其中,`表名`为您所需查询的表名。以上 SQL 语句中使用了 `SUM() OVER()` 函数来计算累计买入金额和卖出时的加权成本乘以卖出数量的总和,从而求出当前日期及之前的累计买入金额减去当前日期及之前的卖出时的加权成本乘以卖出数量的结果。然后再除以买入总数减去卖出总数,即可得到每一日的加权成本。
阅读全文