我想询问
数据TBL
表,并根据
开始\u日期
的值
产品STBL
桌子
下面,我创建了一个带有初始表(datatbl\u before)和所需最终结果(datatbl\u after)的模式,其中
Product\u查找
列已添加到
数据TBL
表和显示了相应的
产品
从
产品STBL
基于
Asset\u ID
线路和
开始\u日期
。
例如,在
数据TBL
,行与Asset\u ID“1”相关,发生于2017年8月16日,这将从
产品STBL
表,因为它位于
开始\u日期
2017年8月12日,但在下一个
开始\u日期
2017年9月27日与该资产ID相关的价值。
如果Asset\u ID查找和start\u date没有进行日期,则可以返回“NONE”值,例如
数据TBL
有人能就如何解决这一问题提供指导或建议吗?
非常感谢!
CREATE TABLE datatbl_before (
PDate DATE,
Asset_ID varchar(255),
Rev int
);
CREATE TABLE datatbl_after (
PDate DATE,
Asset_ID varchar(255),
Rev int,
Product_Lookup varchar(255)
);
CREATE TABLE productstbl (
Asset_ID varchar(255),
Start_date DATE,
Product varchar(255)
);
INSERT INTO productstbl
VALUES
(' 1 ',' 2017-08-12' ,' A' ),
(' 1' ,' 2017-09-27' ,' B' ),
(' 1' ,' 2018-02-14' ,' C' ),
(' 2' ,' 2018-01-17' ,' A' ),
(' 2' ,' 2018-02-21' ,' B' ),
(' 2' ,' 2018-03-05' ,' C' );
INSERT INTO datatbl_before
VALUES
(' 2017-08-16' ,' 1' ,' 10'),
(' 2017-09-29' ,' 1' ,' 15'),
(' 2018-02-13' ,' 1' ,' 12'),
(' 2018-02-19' ,' 1' ,' 10'),
(' 2018-01-01' ,' 2' ,' 12'),
(' 2018-01-25' ,' 2' ,' 33'),
(' 2018-02-25' ,' 2' ,' 67'),
(' 2018-03-07' ,' 2' ,' 71');
INSERT INTO datatbl_after
VALUES
(' 2017-08-16' ,' 1' ,' 10' ,' A' ),
(' 2017-09-29' ,' 1' ,' 15' ,' B' ),
(' 2018-02-13' ,' 1' ,' 12' ,' B' ),
(' 2018-02-19' ,' 1' ,' 10' ,' C' ),
(' 2018-01-01' ,' 2' ,' 12' ,' NONE'),
(' 2018-01-25' ,' 2' ,' 33' ,' A' ),
(' 2018-02-25' ,' 2' ,' 67' ,' B' ),
(' 2018-03-07' ,' 2' ,' 71' ,' C' );