我有以下数据
Tabel A
product date qty
A 1/6/22 1
A 5/6/22 2
A 9/6/22 5
B 2/6/22 6
Table B
product dailydate cost
A 1/6/22 20
A 8/6/22 50
B 1/6/22 10
B 8/6/22 40 我需要按日期和产品计算成本。
表B中的成本条件将从最低日期开始(使用栏日),直到同一产品出现新的成本,如产品A的成本/单位在(1/6-7/6为20,从8/6-15/6,产品的成本/单位为50 )。
这个查询应该是什么样的呢?
发布于 2022-06-23 06:54:41
这是我所能想到的最好的:
SELECT
*,
CASE
WHEN (SELECT cost FROM tableB WHERE tableB.product=tableA.product AND tableA.date <= tableB.daily_date LIMIT 1) IS NOT NULL
THEN ((SELECT cost FROM tableB WHERE tableB.product=tableA.product AND tableA.date <= tableB.daily_date LIMIT 1))
ELSE (SELECT cost FROM tableB WHERE tableB.product=tableA.product ORDER BY daily_date DESC LIMIT 1)
END AS cost
FROM tableA;https://stackoverflow.com/questions/72725339
复制相似问题