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 :

définition de la clause WHERE


Sujet :

Langage SQL

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    272
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2008
    Messages : 272
    Par défaut définition de la clause WHERE
    Bonjour à tous,

    Aider-moi je patauge dans la s'moule!! Je dois créer une table au travers d'une procédure stockée. Le hic est que ma clause WHERE varie suivant les différents paramètres que ma procédure reçoit!

    Du coup je me suis dis que je pouvais créer une variable de type varchar pour gérer ma clause WHERE, mais j'ai beau retourner ça dans tous les sens rien y fait, ça marche pas!

    Ce que j'aimerais est de pouvoir récupérer la chaîne de caractère d'une variable de type varchar (ou autre) et d'utiliser cette chaîne dans ma clause where.. Est-ce possible d'une manière ou d'une autre ou pas du tout??

    Un truc genre :

    ......
    WHERE @ma_variable
    ...

    Merci bien

  2. #2
    Membre Expert Avatar de scheu
    Inscrit en
    Juin 2007
    Messages
    1 506
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 1 506
    Par défaut
    Selon la base de données que tu utilises (Oracle, SQL server, ...), tu peux peut-être utiliser une procédure stockée avec en paramètre d'appel ta variable
    La théorie, c'est quand on sait tout mais que rien ne fonctionne.
    La pratique, c'est quand tout fonctionne mais que personne ne sait pourquoi.
    Ici, nous avons réuni théorie et pratique : Rien ne fonctionne ... et personne ne sait pourquoi !

    Réplication de base avec Postgresql : http://scheu.developpez.com/tutoriel.../log-shipping/

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    272
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2008
    Messages : 272
    Par défaut
    Je bosse sur une applic Access avec une base de donnée SQL Server 2005. Je récupère en fait des données saisies par le user (pour filtrer mes enregistrement). Ces infos sont récupérées et passées en paramètre à une procédure stockée qui, en fonction de ces param, va extraire mes données.

    Dans cette procédure je fais des test sur ces paramètres et je développe ma clause WHERE selon ces test. Je me retrouve donc après avec une variable de type varchar qui contient les conditions de WHERE. Enfin, avant que j'embrouille tout le monde, passons à l'exemple...

    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
    17
    18
    19
    20
    21
    22
    23
    24
    ALTER PROCEDURE [dbo].[sp_retrieve_OF_list]
    	@SEMAINE AS BIGINT,	@FILTRE AS VARCHAR(15)
    
    AS
    BEGIN
    
    	DECLARE @FILTRE_TOT VARCHAR(1000)
    	
    	DELETE  FROM tb_temp_liste_OF
    	SELECT @FILTRE_TOT = ''
    	SELECT @FILTRE_TOT = ' (rq_gpao_ordre_fabrication.of_lanc_sem <= ' + STR(@SEMAINE,6) + ') AND (rq_gpao_ordre_fabrication.of_sit <> ''P'')  '
        IF SUBSTRING(@FILTRE, 1, 1) = 1
            SELECT @FILTRE_TOT = @FILTRE_TOT + ' AND (rq_gpao_ordre_fabrication.art_cod LIKE ''112%'') '
        
    	INSERT INTO tb_temp_liste_OF (of_num, of_nat, ....)
    	SELECT     rq_gpao_ordre_fabrication.of_num, rq_gpao_ordre_fabrication.of_nat, ...
        FROM       rq_gpao_ordre_fabrication INNER JOIN
                   rq_gpao_articles ON rq_gpao_ordre_fabrication.art_cod = rq_gpao_articles.art_cod
        WHERE  C'EST ICI QUE JE SèCHE, comment récupérer ici le contenu de ma variable @FILTRE_TOT
        ORDER BY   rq_gpao_ordre_fabrication.art_cod;
    
    	SET NOCOUNT ON;
    
    END
    Voilà mon problème... et je me casse les dents là dessus depuis un moment. Un grand merci à vous pour vos réponse...

  4. #4
    Membre Expert Avatar de scheu
    Inscrit en
    Juin 2007
    Messages
    1 506
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 1 506
    Par défaut
    désolé je connais pas trop SQL Sevrer, poste ton problème sur le forum SQL Server on devrait pouvoir te répondre
    La théorie, c'est quand on sait tout mais que rien ne fonctionne.
    La pratique, c'est quand tout fonctionne mais que personne ne sait pourquoi.
    Ici, nous avons réuni théorie et pratique : Rien ne fonctionne ... et personne ne sait pourquoi !

    Réplication de base avec Postgresql : http://scheu.developpez.com/tutoriel.../log-shipping/

  5. #5
    Membre chevronné Avatar de chrifo
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    444
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 444
    Par défaut
    Bonjour,

    Effectivement ce n'est pas vraiment un problème sql ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    SET @SQLreq=".... WHERE "+ @FILTRE_TOT+" ORDER BY   rq_gpao_ordre_fabrication.art_cod"
    EXECUTE(@SQLreq)
    A+

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    272
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2008
    Messages : 272
    Par défaut
    Oki doc, je m'en vais de ce pas aller poster mon message sur ce forum.. Merci quand même... Bonne journée

  7. #7
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    272
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2008
    Messages : 272
    Par défaut
    hehe, ta combine fonctionne parfaitement. Je fais juste un SELECT a la place du SET mais sinon ca marche nickel.

    Merci encore et bonne journee

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

Discussions similaires

  1. [super requete] Dumper un model avec une clause where
    Par elievar dans le forum Langage SQL
    Réponses: 3
    Dernier message: 16/03/2005, 17h05
  2. Ordre des tests dans la clause WHERE
    Par Tans98 dans le forum Langage SQL
    Réponses: 6
    Dernier message: 22/09/2004, 10h52
  3. Problème clause WHERE
    Par Invité dans le forum Langage SQL
    Réponses: 3
    Dernier message: 11/06/2004, 15h07
  4. probleme avec le caractere 'Z' dans ma clause WHERE
    Par dibox dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 01/04/2004, 12h21
  5. [ character en simple cote ] clause Where
    Par hocinema dans le forum DB2
    Réponses: 3
    Dernier message: 20/02/2004, 10h17

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