Commande de requête par horodatage et nom à partir de deux tables différentes

Note: Je suis un peu nouveau sur SQL Server, donc cela devrait être une question facile, et je m'excuse pour les erreurs dans le formatting de cette question.

C'est SQL Server 2008 R2.

J'ai deux tables.

Je souhaite que ma requête répertorie tous les PROD_NAME selon le dernier COLLECT_TS

Voici ce que j'ai jusqu'ici:

 SELECT MAX(COLLECT_TS), PROD_ID FROM dbo.SG_DATA GROUP by PROD_ID 

Cela renvoie avec succès tous les derniers COLLECT_TS avec un PROD_ID , mais le PROD_ID est juste un nombre et ne signifie rien pour l'user.

Merci d'avance pour vos réponses.

 Select max(p.prod_name) as prod_name, max(d.collect_ts) as collect_ts From product p Join data d -- left join if you want products with no data On d.prod_id = p.prod_id Group by p.prod_id 

L'idée est de joindre des produits et des données afin que nous obtenions une ligne pour chaque input de données avec les informations supplémentaires des produits attachés. Ensuite, nous regroupons par identifiant de produit et prenons le maximum de collectes de chaque groupe. Nous prenons également le nom max, mais c'est correct car le nom sera constant dans le groupe, nous avons donc besoin d'une agrégation pour sélectionner une seule valeur.

Vous devez joindre les deux tables puis order par la colonne COLLECT_TS:

 Select TB2.PROD_NAME , TB1.COLLECT_TS From [Table_1] as TB1 Join [Table_2] as TB2 on TB1.PROD_ID = TB2.TB1.PROD_ID Order by TB1.COLLECT_TS desc 
 SELECT MAX(COLLECT_TS), MAX(PROD_NAME) FROM dbo.SG_DATA a inner join dbo.PRODUCT b on a.prod_id = b.prod_id GROUP by PROD_ID