[英]SQL server 2008: join 3 tables and select last entered record from child table against each parent record
[英]SELECT latest record from a SQL Server 2008 table
我有一个表,其中包含产品的付款条件。 我想获得该产品的最新条款。 在下面的查询中,它返回自我的应用程序投入生产以来的所有条款。 我只需要该产品的最新术语。
SELECT
dbo.FinishProduct.id,
dbo.PaymentTerm.id,
dbo.PaymentTerm.terms,
dbo.PaymentTerm.type
FROM
dbo.PaymentTerm
INNER JOIN
dbo.FinishProduct ON (dbo.PaymentTerm.finishProductId = dbo.FinishProduct.id)
WHERE
finishproduct.id = 39
我的PaymentTerm
表具有PK id
,并且具有创建和更新日期,例如:
id BIGINT NOT NULL IDENTITY,
created DATETIME,
lastUpdated DATETIME,
您可以将orderby子句放在查询中的lastUpdated字段上,并相应地获取前10个或更多最新记录,如下所示
SELECT TOP 10 FP.id, PT.id, PT.terms, PT.type
FROM dbo.PaymentTerm PT
INNER JOIN dbo.FinishProduct FP ON PT.finishProductId = FP.id
WHERE FP.id=39
ORDER BY lastUpdated desc
或者,如果您需要获取从一天到当前日期的所有记录,请在这样的内置函数中使用DateDiff
SELECT FP.id, PT.id, PT.terms, PT.type
FROM dbo.PaymentTerm PT
INNER JOIN dbo.FinishProduct FP ON PT.finishProductId = FP.id
WHERE FP.id=39 AND DateDiff(DAY,lastUpdated, GETDATE()) <= 1
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.