[英]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.