2017-10-13 6 views
0

J'ai plusieurs tables que j'ai besoin de joindre et celles-ci doivent être jointes à l'ensemble de résultats d'une table de dessin dans cette table de dessin chaque partie a plusieurs numéros de dessin et révisions. J'ai besoin du nombre maximum de dessin et ensuite de la révision maximum de ce nombre pour une partie.Compound Max Query

Je me rends compte que je peux le faire par:

font

select part, max(dwg_num) 
from drawingtable 
group by part 

puis incorporer ceci est une autre requête pour obtenir la révision max puis se joindre à lui-même pour obtenir les autres domaines, mais tout semble un peu brouillon et je me demandais si quelqu'un avait des idées sur une meilleure façon de le faire

+3

Votre question n'est pas claire. Veuillez inclure la structure de la table et des exemples de données. –

Répondre

1

Utilisez ROW_NUMBER pour classer vos enregistrements tirables par partie et garder le meilleur classement.

select * 
from 
(
    select 
    drawingtable.*, 
    row_number() over (partition by part order by dwg_num desc, rev_num desc) as rn 
    from drawingtable 
) ranked 
where rn = 1; 
+0

C'est brillant exactement ce que je cherche! il renvoie le numéro de dessin correct et la révision dans chaque cas, mais sans doublons – JamesP