2009-07-31 5 views
3

Je cherche à retourner la ligne avec le plus grand create_dt. Cela fonctionne bien, mais je voudrais savoir s'il existe une façon plus appropriée de le faire?Existe-t-il un meilleur moyen d'écrire cette requête SQL?

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

Vous ne mentionnez pas la technologie DB. – RichardOD

+1

Désolé, j'utilise msSQL. – jr3

Répondre

15

Que diriez-vous:

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

Sélectionner top 1 * du tableau 1 où job_no = '101047' commander par create_dt desc – msvcyc

+0

merci. On dirait que j'ai corrigé avant de pouvoir me corriger. :) – Dusty

+0

+1 J'aime ça, je peux obtenir la date min en utilisant asc. Merci Monsieur. Il y a juste quelque chose à propos des requêtes imbriquées que je n'aime pas. – jr3

4

votre requête renverra plus d'une valeur s'il y a plus d'une rangée de create_dt
où job_no = '101047'

Cela fonctionne mieux

Select top 1 * from table1 
where job_no='101047' 
order by create_dt desc 
Questions connexes