Sql 基于日期从联接中选择列的值-使用表和代码
我之前发布了一个类似的问题,但我想我会再次发布一些附加信息 基本上,我需要做的是将值拉入基于过期的数据集中,并且我需要为每个客户提供一个唯一的值。每个客户都有一个他们正在使用的产品,以及一个他们将在续订时自动使用的产品 如果他们的续订日期大于今天,我需要退回他们今天的产品。如果他们的续约日期少于今天,我需要使用他们的续约产品 成品应如下所示:Sql 基于日期从联接中选择列的值-使用表和代码,sql,sql-server,tsql,Sql,Sql Server,Tsql,我之前发布了一个类似的问题,但我想我会再次发布一些附加信息 基本上,我需要做的是将值拉入基于过期的数据集中,并且我需要为每个客户提供一个唯一的值。每个客户都有一个他们正在使用的产品,以及一个他们将在续订时自动使用的产品 如果他们的续订日期大于今天,我需要退回他们今天的产品。如果他们的续约日期少于今天,我需要使用他们的续约产品 成品应如下所示: CREATE TABLE mytable( FIELD1 VARCHAR(6) NOT NULL PRIMARY KEY ,FIELD2 VARCHAR(
CREATE TABLE mytable(
FIELD1 VARCHAR(6) NOT NULL PRIMARY KEY
,FIELD2 VARCHAR(11) NOT NULL
,FIELD3 VARCHAR(8) NOT NULL
,FIELD4 VARCHAR(10) NOT NULL
);
INSERT INTO mytable(FIELD1,FIELD2,FIELD3,FIELD4) VALUES
('custid','product','category','enddate');
INSERT INTO mytable(FIELD1,FIELD2,FIELD3,FIELD4) VALUES
('1','FlexLife','H','01/01/2060');
INSERT INTO mytable(FIELD1,FIELD2,FIELD3,FIELD4) VALUES
('2','whoellife12','R','06/08/2019');
以下是第一个数据集的外观:
CREATE TABLE mytable(
FIELD1 VARCHAR(6) NOT NULL PRIMARY KEY
);
INSERT INTO mytable(FIELD1) VALUES ('custid');
INSERT INTO mytable(FIELD1) VALUES ('1');
INSERT INTO mytable(FIELD1) VALUES ('2');
应将其与此数据集结合以实现以下结果:
CREATE TABLE mytable(
FIELD1 VARCHAR(6) NOT NULL PRIMARY KEY
,FIELD2 VARCHAR(12) NOT NULL
,FIELD3 VARCHAR(8) NOT NULL
,FIELD4 VARCHAR(10) NOT NULL
);
INSERT INTO mytable(FIELD1,FIELD2,FIELD3,FIELD4) VALUES
('custid','product','category','enddate');
INSERT INTO mytable(FIELD1,FIELD2,FIELD3,FIELD4) VALUES
('1','wholelife12','R','02/07/2019');
INSERT INTO mytable(FIELD1,FIELD2,FIELD3,FIELD4) VALUES
('2','powerlife12','R','06/08/2019');
INSERT INTO mytable(FIELD1,FIELD2,FIELD3,FIELD4) VALUES
('1','flexlife','H','01/01/2060');
INSERT INTO mytable(FIELD1,FIELD2,FIELD3,FIELD4) VALUES
('2','flexlife','H','1/1/2060');
提前感谢您的帮助 编辑第一个问题可能会更好。现在,也许你应该删除它来支持这一个?结构是不寻常的,如果FIELD4是一个日期而不是VARCHAR,这不是更容易吗?而且现在所有的日期都大于>今天,你的意思是2018年8月6日吗?是的,这就是我的意思@Ian FogelmanI在国防部的建议下把它放进了自动发电机,这就是结果@德甘