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

Langage SQL Discussion :

Requête compliquée


Sujet :

Langage SQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Juin 2010
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en Business Intelligence
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juin 2010
    Messages : 18
    Par défaut Requête compliquée
    Bonjour à tous et a toutes,


    J'ai une table Article qui contient (ART_ID, ART_Description).
    Une autre table ArticleVersion qui contient (ARV_ID, ARV_Description, ART_ID, ARV_LANGUE).
    La table Article est la table mère.

    Je veux dans une requête (simple ou imbriquée) retrouver ce résultat :
    ART_Langue correspond à l'ID de la langue dans la table Langues (1 Anglais, 2 Francais, 3 Italien...).

    Mon ultime but est d'avoir l'ARV_ID et l'ARV_DESCRIPTION de chaque famille d'Article en prenant en compte la langue, c'est-à-dire que je ne veux qu'une seule langue, par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Table Article 
    ART_ID      | ART_DESCRIPTION
    1	        | famille 1
    2 	        | famille 2
    3	        | famille 3
     
    Table ArticleVersion
    ARV_ID      | ARV_DESCRIPTION      | ART_ID    | ARV_LANGUE
    1	        | article 1	                | 1	        | 1
    2	        | article 2	                | 1	        | 3
    3	        | article 3	                | 1	        | 5
    4	        | article 4	                | 2	        | 4
    5	        | article 5	                | 2	        | 6
    Mon but est d'avoir ce tableau :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    ARV_ID       | ARV_DESCRIPTION     | ART_ID    | ARV_LANGUE
    1	        | article 1	                | 1	        | 1
    2	        | article 4	                | 2	        | 4
    Je travaille sous SQL-Server.
    Voila j'espère avoir été assez clair.

    Merci par avance.

  2. #2
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 3
    Par défaut
    Salut ,

    Essaie ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    SELECT  arv.arv_id
           ,arv.arv_description
           ,arv.art_id
           ,arv.arv_langue
    FROM    ArticleVersion  arv
    WHERE   (arv.art_id
            ,arv.arv_id) 
                IN (SELECT  arv2.art_id
                           ,MIN(arv2.arv_id) arv_id
                    FROM    ArticleVersion  arv2    
                    GROUP BY arv2.art_id
                    )
    Je travaille plus sur Oracle mais je pense que la syntaxe doit être la même sur SqlServer .

    KarHel

  3. #3
    Membre extrêmement actif
    Avatar de islamov2000
    Homme Profil pro
    Ingénieur d'études & developpement en informatique
    Inscrit en
    Septembre 2007
    Messages
    814
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Ingénieur d'études & developpement en informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2007
    Messages : 814
    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 ArticleVersion.ARV_ID, ArticleVersion.ARV_DESCRIPTION, ArticleVersion.ART_ID, ArticleVersion.ARV_LANGUE, A.ART_DESCRIPTION
    FROM 
    (
    SELECT ArticleVersion.ART_ID, Min(ArticleVersion.ARV_LANGUE) AS MinDeARV_LANGUE,Article.ART_DESCRIPTION
    FROM ArticleVersion INNER JOIN Article ON ArticleVersion.ART_ID=Article.ART_ID
    GROUP BY ArticleVersion.ART_ID,Article.ART_DESCRIPTION
    ) A  INNER JOIN ArticleVersion 
                           ON (A.ART_ID = ArticleVersion.ART_ID) 
             AND (A.MinDeARV_LANGUE = ArticleVersion.ARV_LANGUE)

  4. #4
    Membre averti
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Juin 2010
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en Business Intelligence
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juin 2010
    Messages : 18
    Par défaut
    Citation Envoyé par boussafi Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    SELECT ArticleVersion.ARV_ID, ArticleVersion.ARV_DESCRIPTION, ArticleVersion.ART_ID, ArticleVersion.ARV_LANGUE, A.ART_DESCRIPTION
    FROM 
    (
    SELECT ArticleVersion.ART_ID, Min(ArticleVersion.ARV_LANGUE) AS MinDeARV_LANGUE,Article.ART_DESCRIPTION
    FROM ArticleVersion INNER JOIN Article ON ArticleVersion.ART_ID=Article.ART_ID
    GROUP BY ArticleVersion.ART_ID,Article.ART_DESCRIPTION
    ) A  INNER JOIN ArticleVersion 
                           ON (A.ART_ID = ArticleVersion.ART_ID) 
             AND (A.MinDeARV_LANGUE = ArticleVersion.ARV_LANGUE)
    ca maaaaaaaaarche, merci mister Boussafi, t'es le plus fort, ca m'a pris des jours et des jours cette requête.... merci beaucoup et a tout ceux qui ont pris le soin de lire ce post.

    bon courage a tous

  5. #5
    Membre averti
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Juin 2010
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en Business Intelligence
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juin 2010
    Messages : 18
    Par défaut
    Merci beaucoup pour ton message, je trouve l'idée très bonne, par contre tsql ne veut pas de virgule dans le where
    je ne sais pas si la syntaxe du where est bonne dans le tsql :
    where(ARV,ART) IN

    quelqu'un peut nous dire si cette syntaxe est valide !!?

    merci par avance

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

Discussions similaires

  1. Besoin d'aide pour une requête compliquée
    Par Chekov dans le forum Langage SQL
    Réponses: 2
    Dernier message: 24/01/2008, 10h59
  2. [SQL 2005] Requête Compliquée
    Par NicoNGRI dans le forum Langage SQL
    Réponses: 7
    Dernier message: 03/05/2006, 15h12
  3. besoin aide pour requête compliquée ......
    Par Ickou dans le forum Requêtes
    Réponses: 4
    Dernier message: 10/04/2006, 17h43
  4. [SQL Server] Requête compliquée
    Par Cpt Anderson dans le forum Langage SQL
    Réponses: 3
    Dernier message: 18/01/2006, 14h24
  5. [PhpMySQL]Requête compliquée
    Par Shabata dans le forum Langage SQL
    Réponses: 4
    Dernier message: 24/04/2005, 21h54

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