大家好,我只是从SQl服务器开始
数据
type num1 num2 date1
A 1 2 01/01/2019
b 1 01/02/2019
b 3 05/02/2017
a 1 1 03/02/2019
a 2 3 15/03/2018
b 2 20/12/2018
预期结果
type num1 num2 date1 'date2'
a 1 2 01/01/2019 20/12/2018
a 1 1 03/02/2019 01/02/2019
a 2 3 15/03/2018 05/02/2017
这是迄今为止我做的最好的事,我的date2都搞砸了,因为我没有获得正确的值,而且日期仍然存在问题,即在不同的年份num1中可能存在相同的数字1类型b在2017年存在和2019
select c1.type, c1.num1, c1.num2, c1.date, c2.date as 'date2'
from t1 c1
inner join t1 c2 on c2.num2=c1.num1
order by c1.type
感谢您的帮助
答案 0 :(得分:1)
我认为这很简单:
SELECT
t1.[type],
t1.num1,
t1.num2,
t1.date1,
t2.date1 AS date2
FROM
t1
LEFT JOIN t2 ON t2.num1 = t1.num2 AND t2.num2 IS NULL
ORDER BY
t1.[type];
但是请注意,由于您的问题尚不完全清楚,我必须在一定程度上提出要求。
答案 1 :(得分:1)
您需要做的就是加入自己,然后允许约会
Declare @table1 table (type Char(1)
,num1 int
,num2 int
,date1 date)
insert into @table1 (type,num1,num2,date1)
values
('a',1,2,'2019-01-01')
,('b',1,null,'2019-01-02')
,('b',3,null,'2017-05-02')
,('a',1,1,'2019-03-02')
,('a',2,3,'2018-03-15')
,('b',2,null,'2018-12-20')
select t.*,t2.date1 'Date2'
from @table1 t
inner join @table1 t2
on t.num2 = t2.num1
and t.type = 'a'
and t2.type = 'b'