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

MS SQL Server Discussion :

Probleme avec la clause WHERE


Sujet :

MS SQL Server

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

    Informations forums :
    Inscription : Janvier 2008
    Messages : 272
    Points : 114
    Points
    114
    Par défaut Probleme avec la clause WHERE
    Bonjour tout le monde, comme vous l-imaginey bien j-ai un petit soucis qui j espere grace a vous va disparaitre.

    Je bosse actuellement 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
    J espere que j ai reussi a etre plus ou moins clair... En tout cas je vous remerci d-avance mais la je seche completement....

  2. #2
    Membre averti
    Avatar de SoBaKa
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2006
    Messages
    242
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2006
    Messages : 242
    Points : 349
    Points
    349
    Par défaut
    tu dois passer par les requêtes dynamiques sinon ça ne fonctionnera pas ^^

    exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    DECLARE @sql VARCHAR(100)
    DECLARE @filtre VARCHAR(10)
     
    SET @filtre = 'id = 3'
     
    SET @sql = 'SELECT Nom From Personnes WHERE' + @filtre
     
    EXEC(@sql)

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

    Informations forums :
    Inscription : Janvier 2008
    Messages : 272
    Points : 114
    Points
    114
    Par défaut
    yahuuu, merci beaucoup. C est impec.

    Bonne journee

  4. #4
    Membre éprouvé
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Août 2006
    Messages
    730
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 730
    Points : 923
    Points
    923
    Par défaut
    funkyjul, mets la balise résolu STP

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

    Informations forums :
    Inscription : Janvier 2008
    Messages : 272
    Points : 114
    Points
    114
    Par défaut
    dsl pour l'oubli, je débute sur les forum et j'y pense pas toujours..
    J'essaierai d'y penser à l'avenir

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

Discussions similaires

  1. probleme avec SELECT..FROM..WHERE
    Par VBBBA dans le forum Requêtes et SQL.
    Réponses: 8
    Dernier message: 08/09/2006, 15h58
  2. Insert avec une clause where !?
    Par Thomad dans le forum MS SQL Server
    Réponses: 8
    Dernier message: 04/08/2006, 09h55
  3. Requête avec multiple clause where
    Par pgenet dans le forum Requêtes
    Réponses: 3
    Dernier message: 07/03/2006, 13h59
  4. Probleme de requete, clause where et nombre a virgule..
    Par forest82 dans le forum Requêtes
    Réponses: 4
    Dernier message: 11/12/2005, 19h19
  5. [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

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