1

SQL Server 2008 に SQL テーブルがあり、その日付に依存する最新のレコードを取得したいと考えています。

たとえば、レコードの作成日を含む列と日付列を持つレコードがあるとします。日付列に次の日付が含まれているとしましょう。12月22日、12月23日、12月24日、12月25日、12月26日

今、12月25日より前のレコードを取得したいのですが、最新の日付のレコードが欲しいので、クエリを書くと

select * from Table where CreateDate < '25-Dec-2012' 

次に、3つのレコードが返されますが、それらの最新のレコード、つまり12月24日のレコードが必要です

どうやってするの ?

4

7 に答える 7

1

これを使用すると、正常に動作し、手動でチェックされます..:)

select top 1 * 
from TableName 
where Createdate < '25-Dec-2012' 
order by Createdate desc
于 2012-12-26T06:26:59.013 に答える
1

最後のレコードを最初に取得するには、クエリに追加TOP 1し、自然な順序とは逆に並べる必要があります。CreateDateデフォルトの順序が昇順であると仮定するとORDER BY CreateDate DESC、トリックを実行する必要があります。

SELECT TOP 1 *
FROM Table
WHERE CreateDate < '25-Dec-2012' 
ORDER BY CreateDate DESC
于 2012-12-26T05:27:17.537 に答える
0

してみてください:

select 
  top 1 * 
from Table 
  where CreateDate < '25-Dec-2012' 
order by CreateDate desc
于 2012-12-26T05:27:44.810 に答える
0

使用するTOP

SELECT TOP 1 *
FROM TABLENAME
WHERE CreateDate < '25-Dec-2012'
ORDER BY CreateDate DESC
于 2012-12-26T05:28:21.610 に答える
0

「トップ」を次のように含めることができます..

    select top 1 * from Table where CreateDate < '25-Dec-2012' order by CreateDate desc;
于 2012-12-26T05:28:22.903 に答える
0

OPは、日付ごとに1行しかないため、2012年12月24日の行が目的の行になると述べました。

select * from Table where CreateDate = '24-Dec-2012'

于 2012-12-26T05:30:46.543 に答える
-1

使用する必要がorderあり、limit

select * from Table where CreateDate < '25-Dec-2012'  order by CreateDate DESC LIMIT 1
于 2012-12-26T05:27:36.323 に答える