我得到了一个包含主要和次要公司位置的地址表,例如:
地址:
ID CompanyName AdressType MainID Location
1 ExampleCompany H 0 Germany
2 ExampleCompany N 1 Sweden
3 ExampleCompany N 1 Germany
我们还得到了另一张联系人表,其中包括公司每个地点的最新联系人
联系人
ID SuperID Datecreate Notes
1 1 10.04.2018 XY
2 3 09.04.2018 YX
3 2 11.04.2018 XX
现在,我们要为每家公司选择最新的联系人,并对其进行排序,这样我们就可以得到一份长期未联系的所有客户的列表。
我想到了这样的事情:
SELECT
ADDRH.ID,
ADDRH.COMPANY1,
TOPCONT.ID,
TOPCONT.DATECREATE,
TOPCONT.NOTES0
FROM dbo.ADDRESSES ADDRH
OUTER APPLY (SELECT TOP 1 ID, SUPERID, DATECREATE, CREATEDBY, NOTES0 FROM DBO.CONTACTS CONT WHERE ADDRH.ID = CONT.SUPERID ORDER BY DATECREATE DESC) TOPCONT
WHERE
TOPCONT.ID IS NOT NULL
ORDER BY TOPCONT.DATECREATE
但这仍然忽略了一个事实,即我们多次在地址表中找到同一家公司。如何创建一个列表,让每家公司都有最新的联系人?
谢谢你的帮助
您好