0

製品の支払い条件を含む表があります。その製品の最新の用語を入手したい。以下のクエリでは、アプリケーションが本番環境に移行してからのすべての用語が返されます。その製品の最新の用語だけが必要です。

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のテーブルにはPKidがあり、次のように作成および更新された日付があります。

id BIGINT NOT NULL IDENTITY,
created DATETIME,
lastUpdated DATETIME,
4

1 に答える 1

1

次のように、クエリのlastUpdatedフィールドにorderby句を配置し、それに応じて上位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
于 2012-08-26T05:19:13.890 に答える