我正在尝试创建一个SQL视图。如何从一个表中选择最新记录,而将其他表保留为原样。我需要从所有表格中选择所有记录,这些记录工作正常,但我需要按日期选择最近的提案,这是我遇到的问题。
这是我到目前为止:
SELECT TOP (100) PERCENT
i.CustInqDate AS InquiryDate,
i.CustomerID,
prop.ProposalID,
i.CustInqryID
FROM
ptsweb.tblCustomerInqry AS i
LEFT OUTER JOIN
ptsweb.tblCustomer AS tc ON tc.CustomerID = i.CustomerID
LEFT JOIN
ptsweb.tblProposal AS prop ON tc.CustomerID = prop.CustomerID
AND prop.DateCreated = (SELECT MAX(ptsweb.tblProposal.DateCreated)
FROM ptsweb.tblProposal)
WHERE
(i.CustInqDate > '1/1/2017')
AND tc.CustomerID = 101568
但它没有显示任何记录。该客户有多个查询和提案。有些记录有一条记录,一条提案,或者它可以是任何一种方式。
谢谢。
我建议apply
:
SELECT . . .
FROM ptsweb.tblCustomerInqry i LEFT OUTER JOIN
ptsweb.tblCustomer tc
ON tc.CustomerID = i.CustomerID OUTER APPLY
(SELECT TOP (1) p.*
FROM ptsweb.tblProposal p
WHERE tc.CustomerID = p.CustomerID
ORDER BY p.DateCreated DESC
) p
WHERE i.CustInqDate > '2017-01-01' AND tc.CustomerID = 101568;