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êtes imbriquées : IN ou WITH ?!


Sujet :

Langage SQL

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    114
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 114
    Points : 46
    Points
    46
    Par défaut Requêtes imbriquées : IN ou WITH ?!
    Bonjour,

    Outil : SQL Server

    Je dispose de 2 tables qui sont :
    F_ART et F_ART_DETAIL

    Ma table F_ART contient : AR_REF et AR_DESIGN et enfin, un champ à 0 ou 1, si l'article est composé d'un autre (et donc présent dans la table F_ART_DETAIL).

    Ma table F_ART_DETAIL contient : AR_REF (clé étrangère de la table F_ART) et AR_NO_DETAIL (qui n'est autre que la référence de l'article "composant").

    J'ai avec simplicité, pu avoir tous mes articles composés uniquement ! mais j'aimerai également afficher la désignation des articles "composants".

    Ex. Voici le résultat obtenu
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Réf article   Désignation                  N° Article composant   
    10079 	     ACIDE ACETIQUE Sol    10071 	 
    10079        ACIDE ACETIQUE Sol    10079
    Ex. Voici l'ajout que je voudrai réaliser :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Réf article   Désignation        N° Article composant   Désignation
    10079 	     ACIDE ACETIQUE Sol    10071 	                Eau purifiée
    10079        ACIDE ACETIQUE Sol    10079                        Nitrate
    En quelque sorte, j'aimerai pouvoir inclure la désignation des composants (sachant que ce champ n'est disponible que dans la table F_ART).

    J'ai crée donc une seconde requête contenant : Toutes les lignes (AR_REF / AR_Design) n'ayant pas de produits composés !

    Puis-je lier les deux requêtes ? Et comment ?

    Merci

  2. #2
    Xo
    Xo est déconnecté
    Expert confirmé
    Avatar de Xo
    Inscrit en
    Janvier 2005
    Messages
    2 701
    Détails du profil
    Informations personnelles :
    Âge : 51

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 701
    Points : 4 238
    Points
    4 238
    Par défaut
    Pourquoi tu ne nous donnes pas les requêtes qui t'a permis d'arriver à ton premier résultat, ça nous simplifierait le boulot

    Donc si j'ai bien compris, ce sont les éléments de la table F_ART qui constitue eux-même d'autres articles de F_ART, c'est bien ça ?

    En supposant que AR_REF soit la PK de ta table, ta requête que tu souhaites devrait donner ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT P.AR_REF, P.AR_DESIGN, C.AR_REF, C.AR_DESIGN
      FROM F_ART P INNER JOIN
           F_ART_DETAIL D ON P.AR_REF = D.AR_REF INNER JOIN
           F_ART C ON D.AR_DESIGN = C.AR_REF;
    En fait, il suffit d'utiliser des alias, pour considérer 2 fois la même table dans la même requête. J'ai choisi P pour Principal, D pour Détail et C pour composant. Rien ne t'empêche d'en choisir de plus lisibles ...

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    114
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 114
    Points : 46
    Points
    46
    Par défaut
    Effectivement, j'ai posé la question un peu trop tôt lol
    J'ai utilisé un alias pour ma table ARTICLE

    Toutefois ... j'ai une autre question :

    J'utilise Dreamweaver, et je dois créer un DSN pour chaque Base de données. MAIS comment faire pour executer des requêtes nécessitant les tables DES 2 BASES DE DONNEES ?

    Est-ce possible comme à l'aide de Crystal Reports ?

    Merci

  4. #4
    Xo
    Xo est déconnecté
    Expert confirmé
    Avatar de Xo
    Inscrit en
    Janvier 2005
    Messages
    2 701
    Détails du profil
    Informations personnelles :
    Âge : 51

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 701
    Points : 4 238
    Points
    4 238
    Par défaut
    En préfixant tes noms de tables par le nom d'instance de ta base je pense.

    Ex :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Select mesChamps
      FROM Base1.Table1 INNER JOIN Base2.Table2 ...
    Si tu n'y arrives pas avec cette indication, je déplacerais le sujet sur le forum MS SQL Server, car ça n'est plus un problème de syntaxe SQL.

Discussions similaires

  1. Pb requête imbriquée
    Par ddams dans le forum Requêtes
    Réponses: 11
    Dernier message: 20/04/2004, 12h13
  2. [Requête] Faire une requête imbriquée?
    Par sekiryou dans le forum Requêtes
    Réponses: 2
    Dernier message: 17/01/2004, 22h52
  3. problème avec une requête imbriquée
    Par jaimepasteevy dans le forum Langage SQL
    Réponses: 13
    Dernier message: 05/12/2003, 10h29
  4. Requêtes imbriquées ?
    Par Ph. B. dans le forum XMLRAD
    Réponses: 7
    Dernier message: 06/05/2003, 13h19
  5. Requête imbriquée et indexes INTERBASE
    Par vadim dans le forum InterBase
    Réponses: 2
    Dernier message: 06/09/2002, 16h15

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