2017-07-20 3 views
0

L'image suivante montrera qu'il y a deux tables, rangées et articles. La table Ranges affiche les plages d'un nombre min à un nombre maximum. La table des éléments affichera les nombres des plages qui ont été utilisées. En d'autres termes, à partir de chaque plage, certains chiffres sont utilisés et d'autres doivent encore être utilisés. Je veux une requête qui trouvera le nombre maximum utilisé dans chaque gamme donnée. Par exemple, de la plage 1 à 100, le nombre maximum utilisé est 5. Je veux que mon résultat indique 5 comme nombre maximal utilisé. De même, la deuxième plage devrait afficher 110 et la troisième plage devrait afficher null car aucun des nombres n'a été utilisé.Trouver le nombre maximum utilisé d'une table en obtenant la gamme de deux nombres d'une autre table

Click here to view the image

Répondre

0

Vous avez besoin d'une jointure externe gauche et l'agrégation:

select r.frnumber, r.tonumber, max(i.rangenum) as maxnumused 
from  ranges r left outer join items i 
        on i.rangenum between i.frunmber and i.tonumber 
group by r.frnumber, r.tonumber 
;