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

SQL Firebird Discussion :

jointure sur table et procedure stocké


Sujet :

SQL Firebird

  1. #1
    Membre du Club
    Inscrit en
    Août 2002
    Messages
    130
    Détails du profil
    Informations forums :
    Inscription : Août 2002
    Messages : 130
    Points : 58
    Points
    58
    Par défaut jointure sur table et procedure stocké
    bonjour,

    j'ai une table et une procedure stockée , et je voudrais dans une même requête extraire des informations de la table et de la PS


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     MAPROCEDURE (nom,date) : QTE
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MATABLE (nom,date,heure)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    MA rquete : select matable.nom, matable.date, MAPROCEDURE.QTE
    from matable,maprocedure(nom,date)
    Est ce possible d'écrire une requête comme celle çi ou s'en rapprochant ?

    Merci

  2. #2
    Membre expert
    Avatar de Barbibulle
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    2 048
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 2 048
    Points : 3 342
    Points
    3 342
    Par défaut
    Non hélas.

    Celà marche uniquement si les paramètres de votre procédures sont des constantes.

    On ne peut pas faire dépendre un des paramétres de votre procédure d'une valeur de votre table.

    La solution est donc de faire une procédure incluant un for select et un execute procedure.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    CREATE PROCEDURE MAPROC_TABLE_AVEC_QTE 
    RETURNS (
        R_NOM VARCHAR(30),
        R_DATE DATE,
        R_QTE integer)
    AS
    begin
      FOR SELECT matable.nom, matable.date 
         FROM matable 
         INTO :R_NOM, :R_DATE 
      DO
      Begin
        Execute procedure Maprocedure :R_NOM, :R_DATE returning_values :R_QTE;
        suspend; 
      end
    end

  3. #3
    Membre du Club
    Inscrit en
    Août 2002
    Messages
    130
    Détails du profil
    Informations forums :
    Inscription : Août 2002
    Messages : 130
    Points : 58
    Points
    58
    Par défaut
    merci beaucoup.

  4. #4
    Membre confirmé Avatar de JustMe
    Inscrit en
    Juillet 2002
    Messages
    479
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 479
    Points : 593
    Points
    593
    Par défaut
    Mais évite d'utilisé les nom de champs comme les mot réservé SQL (Date)
    <On fait la science avec des faits, comme on fait une maison avec des pierres : mais une accumulation de faits n'est pas plus une science qu'un tas de pierres n'est une maison> **Poincaré**

Discussions similaires

  1. Réponses: 4
    Dernier message: 21/05/2008, 11h56
  2. Jointures sur table de liaison (n-n) renvoie des doublons
    Par MICHEL_R dans le forum Langage SQL
    Réponses: 5
    Dernier message: 18/04/2008, 14h34
  3. Réponses: 3
    Dernier message: 08/11/2006, 23h04
  4. [FB1.5]Vue avec jointure sur tables ?
    Par Sitting Bull dans le forum SQL
    Réponses: 2
    Dernier message: 07/12/2004, 17h07

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