【问题标题】:Join Data with effective date range加入有效日期范围的数据
【发布时间】:2021-11-06 13:53:25
【问题描述】:

我有两张桌子;

销售表;这是每天销售的产品的交易

Date Store Product Qty
1/1/2021 A Apple 1
2/1/2021 A Apple 2
3/1/2021 A Apple 1
4/1/2021 A Apple 5

成本表;这是包含生效日期的每个产品的成本

Product Effective Date Cost
Apple 1/1/2021 0.5
Banana 1/1/2021 0.7
Apple 3/1/2021 1

产品的成本将从生效日期开始使用,直到下一个公布的价值 这就是我想要的

Date Store Product Qty Cost
1/1/2021 A Apple 1 0.5
2/1/2021 A Apple 2 0.5
3/1/2021 A Apple 1 1
5/1/2021 A Apple 1 1

你们能帮我解决这个问题吗,因为我对 SQL 很陌生。谢谢!!

【问题讨论】:

  • 请不要标记垃圾邮件、MySql SQL Server SQL Lite Postgres 等。请标记您正在使用的数据库产品。

标签: sql


【解决方案1】:

如下尝试

Select S.Date, S.Store, S.Product, S.Qty, C.Cost
FROM Sale S, Cost C
WHERE S.Product = C.Product AND S.Date = C.EffectiveDate

假设销售表的名称是“销售”,成本表是“成本”

【讨论】:

  • 这不是那么简单,因为缺少某些日期的成本。从我提供的表格中,他们只给出了更改成本的日期,即 2021 年 1 月 1 日和 2021 年 3 月 1 日。但是,如果苹果在 2021 年 2 月 1 日售出,则苹果的成本必须等于 0.5,但表中缺少日期 2/1/2021 的成本。第一次交易和第二次交易之间售出的苹果的成本如何计算?
  • 我找到了类似的解决方案。 stackoverflow.com/questions/55889595/…
猜你喜欢
  • 1970-01-01
  • 2020-05-23
  • 2017-04-27
  • 2011-01-19
  • 1970-01-01
  • 2019-01-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多