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 :

IF et SELECT sur SQLSERVER2005


Sujet :

MS SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2007
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 66
    Par défaut IF et SELECT sur SQLSERVER2005
    Voilà ce que j'aimerais faire :

    IF ( SELECT d.correctionStatus FROM data d < 0 )
    BEGIN



    Mais la syntaxe après IF laisse à désirer ....

    Quel est la solution pour écrire correctement ceci en Transac SQL

    merci de votre aide

  2. #2
    Expert confirmé
    Homme Profil pro
    Big Data / Freelance EURL
    Inscrit en
    Mars 2003
    Messages
    2 124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Big Data / Freelance EURL

    Informations forums :
    Inscription : Mars 2003
    Messages : 2 124
    Par défaut
    Il faut utiliser CASE WHEN qui est du SQL standard.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2007
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 66
    Par défaut
    SELECT CASE d.correctionStatus FROM data d
    WHEN <0
    THEN
    ..

    ELSE
    ...

    J'obtiens encore une erreur

  4. #4
    Membre éclairé
    Inscrit en
    Avril 2005
    Messages
    644
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 644
    Par défaut
    envoie l'erreur que ca te genere.

  5. #5
    Expert confirmé
    Homme Profil pro
    Big Data / Freelance EURL
    Inscrit en
    Mars 2003
    Messages
    2 124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Big Data / Freelance EURL

    Informations forums :
    Inscription : Mars 2003
    Messages : 2 124
    Par défaut
    Il faudrait un minimum lire la doc : msdn sql server: CASE WHEN

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SELECT 
        (CASE 
            WHEN d.correctionStatus <0 THEN 1
            ELSE 2 
        END)
    FROM data

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2007
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 66
    Par défaut
    Oui en effet, mais ça me pose toujours un problème de syntaxe

    SELECT

    (CASE
    WHEN d.correctionStatus <0
    THEN

    INSERT INTO Delta_Transac_Delete (
    CHARGE_CODE,
    AMOUNT,
    TAX_CODE,
    TAX_AMOUNT,
    TOTAL_AMOUNT,
    CORRECTION_STATUS,
    ORIGIN,
    TAX_STATUS,
    ISOLATED_INVOICE_ID,
    STATUS_DELTA
    )
    SELECT *,'DELETED' FROM DATA

    ELSE

    INSERT INTO Delta_Transac_Delete (
    TRANS_ID,
    CREDITOR_ID,
    DEBTOR_ID,
    VENDOR_ID,
    BUYER_ID,
    TRANS_DATE,
    RECORD_DATE,
    LABEL,
    CURRENCY,
    DISPATCH_CODE1,
    DISPATCH_CODE2,
    DISPATCH_CODE3,
    TRANSACTION_SET_ID,
    BR_ROLE,
    BR_TYPE,
    OFFER_CODE,
    SUBSCRIPTION_CODE,
    CHARGE_CODE,
    AMOUNT,
    TAX_CODE,
    TAX_AMOUNT,
    TOTAL_AMOUNT,
    CORRECTION_STATUS,
    ORIGIN,
    TAX_STATUS,
    ISOLATED_INVOICE_ID,
    STATUS_DELTA
    )
    SELECT *,'UPDATED' FROM deleted

    END)

    FROM DATA

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2007
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 66
    Par défaut
    Voici les erreurs que j'ai :

    Msg 156, Level 15, State 1, Line 7
    Incorrect syntax near the keyword 'INSERT'.
    Msg 156, Level 15, State 1, Line 21
    Incorrect syntax near the keyword 'ELSE'.
    Msg 102, Level 15, State 1, Line 54
    Incorrect syntax near ')'.

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

Discussions similaires

  1. Recupération des selections sur une DBGrille multi Selection
    Par Andry dans le forum Bases de données
    Réponses: 1
    Dernier message: 26/11/2004, 11h43
  2. [SELECT sur 16 millions de lignes] délai très grand
    Par localhost dans le forum Requêtes
    Réponses: 6
    Dernier message: 22/11/2004, 17h04
  3. insert-select sur 2 base différente
    Par gskoala dans le forum Paradox
    Réponses: 2
    Dernier message: 16/11/2004, 15h11
  4. select sur un champ de type LONG
    Par ppd dans le forum Langage SQL
    Réponses: 2
    Dernier message: 03/09/2004, 18h19
  5. select sur plusieurs table, question sur jointure
    Par Schulman dans le forum Langage SQL
    Réponses: 7
    Dernier message: 03/09/2004, 13h54

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