2012-11-05 7 views
1

J'ai une table "Observation" dans SQL Server 2008. Cette table contient une colonne locationId pour un ensemble d'emplacements géographiques, quelques colonnes pour les détails de l'observation et une colonne pour la dernière date mise à jour.Obtenir les derniers enregistrements mis à jour

Chaque semaine, un nouvel enregistrement d'observation pour chaque emplacement est ajouté. Donc, un emplacement a de nombreuses occurrences dans la table.

Ce que je veux accomplir, c'est pouvoir obtenir l'enregistrement d'observation le plus récent pour chaque emplacement.

Quelqu'un peut-il aider avec une idée?

Répondre

0

Exécuter requête

select * from Observation 
group by location 
order by viewdate desc 

S'il vous plaît aussi donner tous les détails sur la table et ce que vous voulez obtenir.

EDIT: Le fond de panier a été retiré.

+0

C'est ** pas valide ** pour SQL Server .... –

+0

pouvez-vous me dire ce pas valable ... s'il vous plaît – Bajrang

+0

Tous les accents graves - autour du nom de la table et les noms de colonnes. C'est ** MySQL ** - pas SQL Server. –

2
select * from observation where date=(select max(date) from observation) 

ou

select top 1 * from observation order by date desc 
+0

Il devrait être 'SELECT TOP 1 * FROM .....' (note: espace et pas un point entre '1' et' * ') –

+1

@marc_s merci, je n'ai pas remarqué – SRIRAM

0
select a.* from observations a inner join 
(select locationid ,max(updateddate) dates from observations 
group by locationid) b 
on a.locationid=b.locationid 
and a.updateddate=b.dates 
0

Ajouter une colonne à votre table avec un type de données [timestamp] exécuter le code suivant:

select top(10) * from yourtablename order by columanname desc 

Remarque: columanname devrait soit la colonne que vous ajoutez avec un timestamp type

0

Utilisez la fonction Getdate comme j'ai utilisé ci-dessous.

select * from TBL_MP_QC_CustomerWiseCOA_Master order by getdate() desc 
Questions connexes