2009-07-31 17 views
3

Ich suche die Zeile mit der größten create_dt zurück. Das funktioniert gut, aber ich würde gerne wissen, ob es einen angemesseneren Weg gibt, dies zu tun?Gibt es eine bessere Möglichkeit, diese SQL-Abfrage zu schreiben?

select * from 
table1 
where job_no='101047' 
and 
create_dt in 
    (select max(create_dt) from  
     table1 where job_no='101047') 
+2

Sie erwähnen nicht, welche DB-Technologie. – RichardOD

+1

Tut mir leid, ich benutze msSQL. – jr3

Antwort

15

Wie wäre:

Select top 1 * 
from table1 
where job_no = '101047' 
order by create_dt desc 
+0

Wählen Sie oben 1 * aus Tabelle 1 wo job_no = '101047' bestellen von create_dt desc – msvcyc

+0

danke. Sieht so aus, als hätte ich korrigiert, bevor du mich korrigieren konntest. :) – Dusty

+0

+1 Ich mag das, ich kann das min Datum mit Asc bekommen. Danke, mein Herr. Es gibt nur etwas über verschachtelte Abfragen, die ich nicht mag. – jr3

4

Ihre Anfrage wird mehr als einen Wert zurückgeben, wenn es mehr als eine Reihe von create_dt ist
wo job_no = '101047'

Dies funktioniert besser

Select top 1 * from table1 
where job_no='101047' 
order by create_dt desc 
Verwandte Themen