你总是可以用
CASE
语句,以确定三个日期中哪一个是最近的日期:
CREATE VIEW vProducts AS
SELECT
(your list of columns here....),
DateUpdated =
CASE
WHEN p.DateUpdated >= c.DateUpdated AND p.DateUpdated >= pr.DateUpdated
THEN p.DateUpdated
WHEN c.DateUpdated >= p.DateUpdated AND c.DateUpdated >= pr.DateUpdated
THEN c.DateUpdated
WHEN pr.DateUpdated >= c.DateUpdated AND pr.DateUpdated >= p.DateUpdated
THEN pr.DateUpdated
ELSE
'19000101'
END
FROM
dbo.tblProducts p
INNER JOIN
dbo.tblCategories c ON .......
INNER JOIN
dbo.tblProductPrices pr ON .........
三个条件中的一个应该始终适用(否则你会得到
19000101
作为值)