限制3桌加入

时间:2018-04-06 18:00:10

标签: sql-server join greatest-n-per-group multiple-tables

我有3个表:SWPPP_SITE,SWPPP_TRACKING和LKUP_CONSTRUCTION_STATUS。

SWPPP_SITE为1:多个SWPPP_TRACKING。 SWPPP_SITE与LKUP_CONSTRUCTION_STATUS为1:1。

我试图为所有网站的唯一网站选择1条记录。此查询为我提供了每个站点的多个记录 - 1个站点,许多跟踪以及相应的状态。

我如何只检索例如根据图像,Test_1的一条记录和Test_site3的一条记录?

SELECT s.OBJECTID As SITE_OID, s.Site_Name AS SITE_Site_Name, 
    s.Construction_StatusID, t.OBJECTID As TRACKING_OID, t.Site_Name As 
    TRACKING_Site_Name, cs.OBJECTID As CON_STAT_OID, cs.Status
FROM SWPPP_SITE s INNER JOIN SWPPP_TRACKING t ON s.Site_Name = t.Site_Name
INNER JOIN LKUP_CONSTRUCTION_STATUS cs ON s.Construction_StatusID = 
    cs.OBJECTID
WHERE t.Completion_Date Between '1/1/18' And '5/1/18';

enter image description here

1 个答案:

答案 0 :(得分:1)

你可以只选择DISTINCT ...,只包括你关心的列(即删除TRACKING_OID)