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 :

imbriquer une requête


Sujet :

MS SQL Server

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Février 2011
    Messages
    176
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2011
    Messages : 176
    Points : 133
    Points
    133
    Par défaut imbriquer une requête
    Bonjour,

    Est ce que c'est possible de requêter sur le jeu de résultat de WITH ?.
    Je veux appliquer un sélect (autre instructions) sur le résultat retourné par une requête récurcive.
    Si j'applique un simple select sur la requête du with ce mesage d'erreur apparait:
    Incorrect syntax near the keyword 'with'. If this statement is a common table expression, an xmlnamespaces clause or a change tracking context clause, the previous statement must be terminated with a semicolon.
    J'ai pas compri le problème.
    Merci d'avance .

  2. #2
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 837
    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 837
    Points : 52 922
    Points
    52 922
    Billets dans le blog
    5
    Par défaut
    commencez par poster le texte de la requête.

    Respectez la charte de postage : http://www.developpez.net/forums/d96...vement-poster/

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  3. #3
    Membre éprouvé
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    956
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 956
    Points : 1 199
    Points
    1 199
    Par défaut
    Bonjour,
    Incorrect syntax near the keyword 'with'. If this statement is a common table expression, an xmlnamespaces clause or a change tracking context clause, the previous statement must be terminated with a semicolon.
    SQL server te demande de vérifier si l'instruction précédent le with se termine bien par un point virgule. Cela a l'air de rien, je me suis fait avoir aussi, il faut juste qu'il y ait un ; sur la fin de l'instruction.
    Par exemple si tu as
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    set @mavariable='toto'
    With...
    Tu auras le message d'erreur, tandis qu'avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    set @mavariable='toto';
    With...
    Tu n'auras pas ce message d'erreur.
    Mais sur le fond, je suis d'accord avec SQL pro, avec le texte de la requête que tu as écris, c'est plus facile de t'aider.
    Cordialement
    Soazig

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Février 2011
    Messages
    176
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2011
    Messages : 176
    Points : 133
    Points
    133
    Par défaut
    Bonjour,
    Voici la première requête dont je veux appliquer d'autres instructions:
    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
     
    WITH resultat (FK_ARTICLE, DEBTF, FINTF ,FIN_PR)
    AS
    (
         SELECT e.FK_ARTICLE,e.DEBTF,e.FINTF,e.FIN_PR
         FROM
        (SELECT FK_ARTICLE, DEBTF, FINTF ,debtf AS DEB_PR,
         dbo.min_date (DEBTF, FINTF, DEBRD, FINRD, DEBRP, FINRP, DEBTX, FINTX) as FIN_PR 
         FROM tarif_test.dbo.tab) AS e
     
         UNION ALL
         SELECT e.FK_ARTICLE,e.DEBTF,e.FINTF,e.FIN_PR 
         FROM 
        (SELECT FK_ARTICLE, DEBTF, FINTF ,debtf AS DEB_PR,
         dbo.min_date (DEBTF, FINTF, DEBRD, FINRD, DEBRP, FINRP, DEBTX, FINTX) as FIN_PR 
         FROM tarif_test.dbo.tab) AS e   
         INNER JOIN resultat AS d
         ON e.FIN_PR = d.debtf 
    )
    SELECT  FK_ARTICLE, DEBTF, FINTF,FIN_PR
    FROM resultat
    Comment requêter sur le résultat de celle là.

    Merci.

  5. #5
    Modérateur

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2005
    Messages
    5 826
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2005
    Messages : 5 826
    Points : 12 371
    Points
    12 371
    Par défaut
    Bonjour,

    Les expressions de table commune nécessitent un point-virgule après la dernière instruction les précédant.
    Il vous suffit donc de mettre un point-virgule à cette dernière, ou d'en mettre un juste devant le WITH

    @++

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

Discussions similaires

  1. une requête imbriquée est-elle autorisée dans un INSERT ???
    Par Ekimasu dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 04/08/2005, 09h21
  2. Probleme de Jointures imbriquées dans une requête
    Par Crevin dans le forum Langage SQL
    Réponses: 3
    Dernier message: 13/04/2005, 11h05
  3. Passage de paramètres dans une requête imbriquée
    Par DrakkoFR dans le forum Langage SQL
    Réponses: 2
    Dernier message: 07/02/2005, 12h46
  4. [Requête] Faire une requête imbriquée?
    Par sekiryou dans le forum Requêtes
    Réponses: 2
    Dernier message: 17/01/2004, 22h52
  5. problème avec une requête imbriquée
    Par jaimepasteevy dans le forum Langage SQL
    Réponses: 13
    Dernier message: 05/12/2003, 10h29

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