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 :

Utiliser les valeurs d'une requete dans une autre requete ?!


Sujet :

Langage SQL

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 45
    Points : 26
    Points
    26
    Par défaut Utiliser les valeurs d'une requete dans une autre requete ?!
    Bonjour, je travail actuellement avec un ERP basé sur SQL SERVER.

    Je voulais savoir si en SQL on pouvait créer une requete qui nous donnerait un jeu d'enregistrement et me servir de ce jeu comme parametre pour une autre requete. Un peu comme les recordset ADO.

    Je n'ai trouvé aucun tuto à ce sujet ?!

    un exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $req1 = Select * From Article where Qté =0 And Reservé >0
     
    Select * from Cde where Article = $req1
    J'imagine qu'un tableau doit etre nécessaire ?

    Si quelqu'un a un tuto sous la main je suis preneur

    Cordialement

  2. #2
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    Pourquoi faire deux requêtes quand vous pouvez en faire une seule avec une jointure ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT Cde.*
    FROM Cde
    INNER JOIN Article a ON Cde.Article = a.IdArticleJeSuppose?
    WHERE a.Qté = 0 AND Réservé > 0
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 45
    Points : 26
    Points
    26
    Par défaut
    Bonjour merci pour la réponse

    2 Requete car ensuite je voudrais suivant le résultat de la premiere faire une ou plusieurs actions et ensuite ajouter le résultat dans une table temporaire.

    Exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    $req1 = SELECT * FROM Article WHERE Qté =0 AND Reservé >0
     
    $req2=SELECT * FROM Cde WHERE Article = $req1
     
    IF $req2.date_reserve < dateaujourd'hui then 
    insert into Table temporaire.commentaire "Urgent"
    else
    insert into Table temporaire.commentaire "non-Urgent"
    End IF
    La syntaxe n'est pas bonne c'est juste un exemple pour que vous compreniez pourquoi j'ai besoin de pouvoir m'arreter sur chaque enregistrement ...

  4. #4
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Customer Success Manager @Vertica
    Inscrit en
    Septembre 2008
    Messages
    8 452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Customer Success Manager @Vertica
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 452
    Points : 17 820
    Points
    17 820
    Par défaut
    Vous pouvez (devez) faire ça en SQL :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    SELECT
        <vos_champs>,
        case
          when Cde.date_reserve < getdate()
          then 'Urgent'
          else 'non-Urgent'
        end as commentaire
    FROM
        Cde INNER JOIN Article a
          ON Cde.Article = a.IdArticleJeSuppose?
    WHERE
        a.Qté = 0
    AND Réservé > 0

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

Discussions similaires

  1. [Toutes versions] coller les données d'une plage d'une cellule dans une cellule d'une autre feuille[VBA]
    Par arthson dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 24/01/2012, 17h37
  2. [MySQL] requete dans une table avec une varible d'une autre table
    Par kogoi dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 03/11/2011, 15h24
  3. Réponses: 3
    Dernier message: 13/01/2009, 16h55
  4. [POO] dans une classe, appeler une fonction dans une méthode
    Par arnaudperfect dans le forum Langage
    Réponses: 3
    Dernier message: 26/08/2007, 23h04
  5. Envoyer une formulaire dans une page dans une Frame
    Par zooffy dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 29/06/2007, 10h13

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