确定两个表格之间的正确联系。基于两个条件的行

时间:2015-06-09 14:51:10

标签: sql-server sql-server-2008

我希望我能够清楚地解释这一点,以便有人能够得出结果。 我基于一个公共变量离开了两个表,在这种情况下代表NHS号。两个表都有唯一的行标识符,但它们彼此独立(ID2,TUMOUR_STAGE_LINENO)(如果这有意义)。我的问题是根据两个表中诊断日期之间的最小天差来确定它们之间的正确链接,但每个行标识符不应该与其他行标识符链接两次。我将通过一些示例向您展示链接数据的摘录。

UPDATE NBOCAP.dbo.temp1
SET LINKAGE = 'TRUE'
FROM NBOCAP.dbo.temp1
JOIN (SELECT ID2, MIN(DAYSDIFF) D 
      FROM NBOCAP.dbo.temp1
      GROUP BY ID2) AS X
ON temp1.ID2 = X.ID2
AND temp1.DAYSDIFF = X.D 
AND DATE_OF_DIAGNOSIS < '2013-01-01'    
WHERE temp1.TUMOUR_STAGE_LINENO IN (SELECT a.TUMOUR_STAGE_LINENO
                                    FROM temp1 a
                                    INNER JOIN temp1 b
                                    ON b.TUMOUR_STAGE_LINENO <> a.TUMOUR_STAGE_LINENO)

我不认为我的WHERE条件会在这种情况下发挥作用......

链接表是:

Link to data extract

不在此处上传图片,但我没有10个代表点。

正如你所看到的,nhs数字2&amp; 6我将两个ID2相同的TUMOUR_STAGE_LINENO链接到两个,因为DAYSDIFF是最小的。我的问题是如何在查看MIN(DAYSDIFF)后写入sql,以确保下一个链接的TUMOUR_STAGE_LINENO不应与第一个相同。

我感谢大家花时间去看这个。

PS。您可能已经注意到,也有可能具有相同的DAYSDIFF,从而创建重复的链接。这可能是我需要考虑的另一个问题。

值得一提的是,我感兴趣的是ID2获得了正确的链接行。

非常感谢

阿德里安

0 个答案:

没有答案