Bonjour j'ai besoin d'un coup de main pour faire une requête utilisant des jointures. J'utilise SQL server 2008 express.

Mon application exploite 4 tables qui sont :

HostQueue => contient un ID (HQID), le nombre de téléchargements, et HOST l'hote (free.fr ...)

HostDictionnary => contient en clef secondaire HQID et un champ LINK qui contient des url

WaitQueue => contient des "pointeurs" vers HostDictionnary LAST est un champs Datetime, HID clef secondaire

ReadyQueue => contient des "pointeurs" champs HID

Je dois écrire une requete qui retoursne des LINK (table HostDictionnary), mais seulement si le HID n'existe pas dans la WaitQueue et si le Hid Existe dans la ReadyQueue et en choisissant le HQID (HostQueue) ayant la valeur NUMBEROFDOWNLOAD la plus basse.

Après beaucoup d'essaie je suis arrivé à cette requete mais elle ne fonctionne pas, je ne connais pas très bien le SQL:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
 
FUNCTION SelectHost ()
RETURNS TABLE
AS
RETURN (SELECT TOP(20) A.LINK "LINK", A.HQID "HQID"
FROM HostDictionnary A
JOIN HostQueue AS Q ON A.HQID = Q.HQID
AND ReadyQueue AS B ON B.HID = A.HQID
WHERE MIN(Q.NUMBEROFDOWNLOAD)
Merci de votre aide