IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MS SQL Server Discussion :

Besoin d'aide pour une requete


Sujet :

MS SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif
    Avatar de teddyalbina
    Homme Profil pro
    Développeur .Net,C++
    Inscrit en
    Janvier 2008
    Messages
    466
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .Net,C++

    Informations forums :
    Inscription : Janvier 2008
    Messages : 466
    Par défaut Besoin d'aide pour une requete
    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

  2. #2
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 999
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 999
    Billets dans le blog
    6
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    SELECT HD.LINK, HD.HQID, MIN(NUMBEROFDOWNLOAD)
    FROM   HostDictionnary AS HD
           INNER JOIN HostQueue AS HQ 
                 ON HD.HQID = HQ.HQID
           INER JOIN ReadyQueue AS RQ
                ON RQ.HID = HD.HQID
    WHERE  NOT EXISTS(SELECT *
                      FROM   WaitQueue AS WQ
                      WHERE  WQ.HID = HD.HQID)
    GROUP  BY HD.LINK, HD.HQID
    sinon :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    SELECT HD.LINK, HD.HQID
    FROM   HostDictionnary AS HD
           INNER JOIN HostQueue AS HQ 
                 ON HD.HQID = HQ.HQID
           INER JOIN ReadyQueue AS RQ
                ON RQ.HID = HD.HQID
    WHERE  NOT EXISTS(SELECT *
                      FROM   WaitQueue AS WQ
                      WHERE  WQ.HID = HD.HQID)
    GROUP  BY HD.LINK, HD.HQID
    HAVING NUMBEROFDOWNLOAD = MIN(NUMBEROFDOWNLOAD)
    Pas testé et peut être incorrect car vous n'avez pas respecté la charte de postage en omettant le DDL de vos tables.

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  3. #3
    Membre très actif
    Avatar de teddyalbina
    Homme Profil pro
    Développeur .Net,C++
    Inscrit en
    Janvier 2008
    Messages
    466
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .Net,C++

    Informations forums :
    Inscription : Janvier 2008
    Messages : 466
    Par défaut
    C'est quoi le ddl ?

  4. #4
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 999
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 999
    Billets dans le blog
    6
    Par défaut
    DDL : Data Definition Langage c'est la partie de SQL qui est consacrée à la création des objets :
    CREATE, ALTER, DROP.

    Lis la charte de postage : http://www.developpez.net/forums/d96...vement-poster/

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  5. #5
    Membre très actif
    Avatar de teddyalbina
    Homme Profil pro
    Développeur .Net,C++
    Inscrit en
    Janvier 2008
    Messages
    466
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .Net,C++

    Informations forums :
    Inscription : Janvier 2008
    Messages : 466
    Par défaut
    Voici mon DDL, vive management studio lol

  6. #6
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 999
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 999
    Billets dans le blog
    6
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    SELECT        HD.LINK, HD.HQID, MIN(HQ.NUMBEROFDOWNLOAD) AS Expr1
    FROM            HostDictionnary AS HD INNER JOIN
                             HostQueue AS HQ ON HD.HQID = HQ.HQID INNER JOIN
                             ReadyQueue AS RQ ON RQ.HID = HD.HQID
    WHERE        (NOT EXISTS
                                 (SELECT        ID, HID, LAST
                                   FROM            WaitQueue AS WQ
                                   WHERE        (HID = HD.HQID)))
    GROUP BY HD.LINK, HD.HQID
    Est la bonne !

    A +

    PS : pas la peine de nous donner tout !!!!
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Besoin d'aide pour une requete
    Par fabris dans le forum Requêtes
    Réponses: 1
    Dernier message: 20/04/2006, 20h15
  2. Besoin d'aide pour une requete SQL
    Par fabris dans le forum Requêtes
    Réponses: 6
    Dernier message: 10/04/2006, 20h27
  3. besoin d'aide pour une requete
    Par Pigoulou dans le forum Requêtes
    Réponses: 2
    Dernier message: 24/02/2006, 20h34
  4. Besoin d'aide pour une requete
    Par Okhotsk dans le forum Langage SQL
    Réponses: 3
    Dernier message: 02/11/2005, 16h30
  5. Besoin d'aide pour une requete
    Par jnc dans le forum Langage SQL
    Réponses: 5
    Dernier message: 06/07/2005, 11h54

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo