繁体   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