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 Procédural MySQL Discussion :

Problem where condition as Parameter in MySQL Stored Procedure


Sujet :

SQL Procédural MySQL

  1. #1
    Nouveau membre du Club
    Inscrit en
    Octobre 2005
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 5
    Par défaut Problem where condition as Parameter in MySQL Stored Procedure
    I am passing all where condition as parameter to stored procedure but stored procedure throws error.

    Code SQL : 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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    BEGIN
    SET @t1 =('SELECT 
    documents_articles.id_document,
    documents_articles.id_article,
    date_document,
    code_article,
    libelle_article,
    num_document,
    module_document,
    qte_article,
    pu_ht,
    mouvement_stock_reel,
    mouvement_stock_virtuel,
    qte_article*pu_ht as valeur_unitaire,
    mouvement_stock_reel*pu_ht as valeur_stock
    FROM
      documents,article,documents_articles
    where ');
    
    SET @queryt =CONCAT(@t1,ConditionReq);
    PREPARE stmt FROM @queryt;
    Set @ConditionReq=ConditionReq;
     EXECUTE stmt using @ConditionReq;
    DEALLOCATE PREPARE stmt;
     END
    
    Parameter ConditionReq=(documents.id_document = documents_articles.id_document) And (article.id_article = documents_articles.id_article) and affecte_stock='Oui' And documents.id_ste = '1' and (str_to_date(date_document,'%d/%m/%Y') between  str_to_date('01/11/2017','%d/%m/%Y')  and str_to_date('30/11/2017','%d/%m/%Y'))

    Error : Procedure execution failed
    1109 - Unknown table 'documents' in field list
    Thanks for help

  2. #2
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 814
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    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 814
    Billets dans le blog
    14
    Par défaut
    La table documents existe t-elle ?

    Au passage, les jointures s'écrivent depuis 1992 avec l'opérateur JOIN ; il serait temps de s'y mettre !
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
    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
    Inscrit en
    Octobre 2005
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 5
    Par défaut
    Citation Envoyé par CinePhil Voir le message
    La table documents existe t-elle ?

    Au passage, les jointures s'écrivent depuis 1992 avec l'opérateur JOIN ; il serait temps de s'y mettre !
    Merci bien pour l'info

    Oui la table existe

  4. #4
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 814
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    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 814
    Billets dans le blog
    14
    Par défaut
    Quand vous essayez la requête hors procédure, elle fonctionne ?
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
    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 !

  5. #5
    Membre prolifique Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    Février 2011
    Messages
    6 873
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Agent secret au service du président Ulysses S. Grant !
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 6 873
    Par défaut
    Salut samia2011.

    En gros, vous faites n'importe quoi !!!

    1) une procédure stockée ne s'écrit pas ainsi.
    Vu que vous utilisez une select, je ne voie pas de curseur ???

    2) je ne voie rien en ce qui concerne le retour des paramètres de votre procédure stockée.
    Donc à quoi peut vous servir votre procédure stockée ?
    Réponse : en l'état à rien !

    3) vous utilisez les requêtes préparés. Oui, pourquoi pas, je ne suis pas contre.
    Essayez de faire en sorte que votre requête soit conforme aux passages des paramètres. En l'état, cela ne peut pas fonctionner.

    4) une requête préparée ne vous retourne aucun résultat exploitable.
    Le mieux aurait été de l'utiliser sur un update, insert ou encore un delele, mais pas sur un select.

    5) Une requête préparée sur un select ne vous sert à rien car vous ne pouvez pas exploiter les résultats.
    D'où ma remarque 1) concernant le curseur.

    6) nous n'avez pas le descriptif de vos tables donc nous devons deviner à quelle table appartient telle ou telle colonne.
    En l'état, on ne peut pas vous aider si vous ne faites pas l'effort de nous communiquer le descriptif de vos tables.

    7) à quoi va vous servir votre requête ?

    8) les dates ne sont pas conforme à MySql. Le format est "YYYY-MM-DD". Or vous utilisez le format "DD/MM/YYYY".
    Ce qui implique une conversion et donc votre requête ne sera pas sargable.

    9) je suppose que vous avez utilisé le type varchar() pour vos dates.
    C'est une erreur car il existe le type "date". Donc pourquoi ne pas l'utiliser ?

    10) même remarque que CinePhil, vous devez utiliser des jointures.

    11) votre requête risque d'être très longue à l'exécution car la conditions sur la date est non sargable.

    12) vous n'êtes pas conforme aux demandes de ce forum.
    Vous devez nous fournir le descriptif des tables, un jeu d'essai, la requête, le code retour s'il y a un problème et le résultat attendue.

    13) Conclusion.
    --> Votre procédure stockée n'est pas conforme à l'usage pour MySql.
    --> Votre procédure stockée, telle que vous l'avez formulée, ne sert à rien.
    --> Votre requête préparée ne peut pas fonctionner en l'état.
    --> Et en admettant que cela puisse fonctionne, vous ne pouvez pas exploiter le résultat de votre requête préparée.
    --> et on ne sait toujours pas ce que vous cherchez à faire ???

    @+

Discussions similaires

  1. probleme de trie des nombres dans mysql
    Par fwdavy dans le forum Administration
    Réponses: 3
    Dernier message: 23/03/2006, 21h31
  2. [vb.net][vbexpress] erreur output parameter stored procedure
    Par graphicsxp dans le forum Windows Forms
    Réponses: 14
    Dernier message: 07/12/2005, 18h24
  3. Probleme de conditions
    Par guy2004 dans le forum Langage
    Réponses: 11
    Dernier message: 05/11/2005, 14h54
  4. condition sur count(*) dans mysql
    Par arizona_dream dans le forum Langage SQL
    Réponses: 4
    Dernier message: 25/09/2005, 09h06
  5. probleme gestion condition switch - case
    Par DarkMax dans le forum Langage
    Réponses: 5
    Dernier message: 07/09/2005, 14h25

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