我正在尝试创建一个 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
但它没有显示任何记录。该客户有多个询问和建议。有些记录有一个记录、一个提案,或者可以是任意一种。
Thanks.
我会建议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;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)