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 :

pb creation de variable


Sujet :

MS SQL Server

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    107
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 107
    Points : 55
    Points
    55
    Par défaut pb creation de variable
    bonjour tout le monde,

    je souhaiterais creer une variable mais SQL me retourne systematiquement
    les messages suivants :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Serveur*: Msg 156, Niveau 15, État 1, Ligne 2
    Syntaxe incorrecte vers le mot clé 'IF'.
    Serveur*: Msg 170, Niveau 15, État 1, Ligne 5
    Ligne 5 : syntaxe incorrecte vers ')'.
    ci dessous la requete qui pose problème :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    DECLARE @AccCode varchar(1000)
    SET @AccCode = IF EXISTS(SELECT * FROM cash_ledger cl INNER JOIN accounts a ON a.acc_code = cl.acc_code)
    and a.holding_flag  = 1
    and cl.nature = 12
    print @AccCode)
    and cl.flow_type not in (2,3,6,21,23,79,91,25,40,42,44,70)
    GROUP BY a.acc_code, a.description, cl.value_date)
    pourriez-vous me filez un pti coup de pouce pour que ca passe???

    merci pour votre aide...

  2. #2
    Membre éprouvé
    Avatar de HULK
    Inscrit en
    Juillet 2003
    Messages
    1 276
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 276
    Points : 1 281
    Points
    1 281
    Par défaut
    Ton if exists sert à rien, si ca n'existe pas bah tu à rien dans ta variable. L'autre erreur c'est une parenthèse qui se balladait au mauvaise endroit.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    DECLARE @AccCode varchar(1000)
    SET @AccCode = (SELECT * FROM cash_ledger cl INNER JOIN accounts a ON a.acc_code = cl.acc_code
    AND a.holding_flag  = 1
    AND cl.nature = 12
    AND cl.flow_type NOT IN (2,3,6,21,23,79,91,25,40,42,44,70)
    GROUP BY a.acc_code, a.description, cl.value_date)
    print @AccCode

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    107
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 107
    Points : 55
    Points
    55
    Par défaut
    Merci pour ta réponse

    quand j'execute la requete j'ai le message :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Serveur*: Msg 116, Niveau 16, État 1, Ligne 2
    Une seule expression peut être spécifiée dans la liste de sélection quand la sous-requête n'est pas introduite par EXISTS.
    Kezako?????

    Merci

  4. #4
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 888
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 888
    Points : 53 121
    Points
    53 121
    Billets dans le blog
    6
    Par défaut
    soyez logique vous mettez d'un coté une variable, de l'autre coté une table !

    Apprenez un minimum la syntaxe de SQL, cela peut vous servir....

    En particulier lisez l'article que j'ai écrit à ce sujet :
    http://sqlpro.developpez.com/cours/s...r/transactsql/

    A +

  5. #5
    Membre éprouvé
    Avatar de HULK
    Inscrit en
    Juillet 2003
    Messages
    1 276
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 276
    Points : 1 281
    Points
    1 281
    Par défaut
    Ouai j'ai meme pas fait gaffe !!

    dans une variable de type string tu peut mettre une string !

    tu peut pas mettre une table complete, ca par exemple, tu peut le faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    SET @AccCode = (SELECT TOP 1 unchamp FROM cash_ledger cl INNER JOIN accounts a ON a.acc_code = cl.acc_code
    AND a.holding_flag  = 1
    AND cl.nature = 12
    AND cl.flow_type NOT IN (2,3,6,21,23,79,91,25,40,42,44,70)
    GROUP BY a.acc_code, a.description, cl.value_date)

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

Discussions similaires

  1. creation de variables en sequence
    Par Jorafali dans le forum Unix
    Réponses: 1
    Dernier message: 30/10/2009, 12h20
  2. Creation de variables a partir de variables
    Par Quatsch dans le forum C
    Réponses: 9
    Dernier message: 27/05/2006, 14h35
  3. Creation de variable a la volée ...
    Par SubZero2 dans le forum Langage
    Réponses: 10
    Dernier message: 15/09/2005, 14h36
  4. [langage] Création de variable d'environnements
    Par Smaugg dans le forum Langage
    Réponses: 20
    Dernier message: 26/04/2004, 09h32
  5. [VB6] creation de variable de type string dynamiquement
    Par da40 dans le forum VB 6 et antérieur
    Réponses: 10
    Dernier message: 12/06/2003, 16h59

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