簡體   English   中英

從SQL Server 2008表中選擇最新記錄

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM