SQL完全外部联接
我试图编写一个join语句,将以下三个数据集连接在一起。(这是使用MS SQL Server) 第1组 身份证日期Col1 1月11日a1 1月13日a2 第2组 身份证日期Col2 1月11日b1 1月15日b2 第三组 身份证日期Col3 1月15日c1 1月17日c2 组合集 ID日期Col1 Col2 Col3 1月11日a1 b1 1月13日a2 1月15日b2 c1 1月17日c2SQL完全外部联接,sql,join,Sql,Join,我试图编写一个join语句,将以下三个数据集连接在一起。(这是使用MS SQL Server) 第1组 身份证日期Col1 1月11日a1 1月13日a2 第2组 身份证日期Col2 1月11日b1 1月15日b2 第三组 身份证日期Col3 1月15日c1 1月17日c2 组合集 ID日期Col1 Col2 Col3 1月11日a1 b1 1月13日a2 1月15日b2 c1 1月17日c2 我认为完全外部联接可以做到这一点,但我遇到了主要的跨产品问题。根据您的数据集,您似乎希望根据日期列联接
我认为完全外部联接可以做到这一点,但我遇到了主要的跨产品问题。根据您的数据集,您似乎希望根据
日期列联接3个表。请注意,我在这里忽略ID列,直到您澄清为什么所有ID都设置为1
SELECT ISNULL(set1.dt, ISNULL(set2.dt, set3.dt)) as 'Date', col1, col2, col3
FROM set1
FULL OUTER JOIN set2 ON CAST(set1.dt AS DATE) = CAST(set2.dt AS DATE)
FULL OUTER JOIN set3 ON CAST(set2.dt AS DATE) = CAST(set3.dt AS DATE)
尝试一下:
select coalesce(t1.date, t2.date, t3.date) date, col1, col2, col3 from table1 t1
full outer join table2 t2 on (t1.date = t2.date)
full outer join table3 t3 on (t2.date = t3.date)
选择ISNULL(a.ID,ISNULL(b.ID,c.ID))ID,coalesce(a.dt,b.dt,c.dt),Col1,Col2,Col3
来自SET1A
a.dt=b.dt上的完全外部连接集2 b
b.dt=c.dt上的完全外部连接设置3 c
您遇到了哪些主要的跨产品问题?这种数据结构和组合数据令人困惑。所有行的ID都相同吗?与这些集合相关的FK是什么?你尝试过什么?你收到了什么问题?同意。不过,我想他不需要结果表中的ID。来添加一些细节。我只包含了一个ID,事实上有很多ID。我正在查看医疗数据,所以ID是PatientID。集合1是处方,因此日期是用药开始日期。第2组是实验室结果,因此日期是观察日期。集合3是约会日期是约会日期。我正在尝试获取一组完整的数据以生成一些报告。请参阅顶部的注释,解释ID。
select coalesce(t1.date, t2.date, t3.date) date, col1, col2, col3 from table1 t1
full outer join table2 t2 on (t1.date = t2.date)
full outer join table3 t3 on (t2.date = t3.date)