Postgresql postgres cumsum乘法和更新价格
在链接和下面的Postgres 13 SQL语句中,字段Postgresql postgres cumsum乘法和更新价格,postgresql,Postgresql,在链接和下面的Postgres 13 SQL语句中,字段计算不正确\u计算值\u b计算不正确 select date_actual,transaction_date, new_price_date,item_name, quantity, SUM((SELECT quantity as B_alloc WHERE item_name='B')) OVER (
计算不正确\u计算值\u b
计算不正确
select date_actual,transaction_date, new_price_date,item_name, quantity,
SUM((SELECT quantity as B_alloc
WHERE item_name='B')) OVER (
ORDER by date.date_actual
RANGE BETWEEN unbounded PRECEDING AND CURRENT ROW
) as CUM_inv_B,
price_B, right_cum_value_B,
SUM((SELECT (quantity*price_date.price_B) as B_value
WHERE item_name='B')) OVER (
ORDER by date.date_actual
RANGE BETWEEN unbounded PRECEDING AND CURRENT ROW
) as incorrectly_calc_value_B
FROM date
LEFT JOIN item_ ON item_.transaction_date=date.date_actual
FULL JOIN price_date ON price_date.new_price_date=date.date_actual
ORDER BY date.date_actual DESC
除计算值不正确外,所有字段中的数据均正确
我尝试了SUM(cum_inv_B*price_B)
进行计算,但没有成功
ERROR: column "cum_inv_b" does not exist
LINE 8: SUM((SELECT (CUM_inv_B*pric...
右累积值\u B
是手动输入的,希望知道如何更正我下面的陈述
要获取当前的错误值,请执行以下操作:
SUM((SELECT (quantity*price_date.price_B) as B_value
WHERE item_name='B')) OVER (
ORDER by date.date_actual
RANGE BETWEEN unbounded PRECEDING AND CURRENT ROW
) as incorrectly_calc_value_B
请发布预期输出..我无法解决您的主要问题。需要测试数据和预期结果。但对于空值,我想到了两个选择:添加一个where条件“和price_date.price_B不为空”或选择(price_date.price_B,0)。这同样适用于数量,无论它来自何方。谁知道解决这个问题可能只会解决另一个问题。预期结果在我的解释中并不清楚。它在DB小提琴中作为问题1的“right_cum_value_b”列。我将尝试合并。