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 :

[SQL-Server] Sous requete dans une procédure stockée


Sujet :

MS SQL Server

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    132
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 132
    Points : 75
    Points
    75
    Par défaut [SQL-Server] Sous requete dans une procédure stockée
    Bonjour,

    Je suis débutant en SQL-Server et j'aimerais pouvoir faire quelque chose que je sais faire sous Oracle mais de la manière la plus simple possible sous SQL-Server.

    J'ai une table, que nous appellerons T1, qui contient par exemple des livres :
    LivreID, LivreTitre, LivreDate, ...
    J'ai une deuxième table, T2, contenant par exemple les mots clés du livre :
    CleID, CleValeur

    Je cherche a récupérer, en une seule requete et avec une seule ligne pour chaque livre, l'ensemble des livres avec les mots clés concaténés (séparés par des **.

    J'ai trouvé dans les tutoriels une commande pour faire celà mais je n'arrive pas vraiment a la faire fonctionner : COALESCE.

    Ma requete est, pour le moment, celle ci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT LivreID, LivreTitre, LivreDate, 
    (SELECT COALESCE(CleValeur + '**', '') FROM T2 WHERE T1.LivreID = T2.LivreID)
    FROM T1
    Elle ne fonctionne pas. J'ai essayé de rajouter une variable dans le SELECT mais celà n'a pas résolu le problème.

    Je me situe dans une procédure stockée.

    Quelqu'un pourrait il me donner un petit coup de main ou m'indiquer des méthodes ?

    Merci beaucoup,
    Worldofdada

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    132
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 132
    Points : 75
    Points
    75
    Par défaut
    Pour info, j'ai l'erreur suivante :
    Subquery returned more than 1 value. This is not permitted when the subquery follows =, !=, <, <= , >, >= or when the subquery is used as an expression.


    Ce qui parait logique mais je ne sais pas comment faire pour qu'il me renvoi un seul résultat, celui des clé concaténées ...

  3. #3
    Rédacteur
    Avatar de WOLO Laurent
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Mars 2003
    Messages
    2 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Congo-Brazzaville

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2003
    Messages : 2 741
    Points : 4 414
    Points
    4 414
    Par défaut
    Impossible de resoudre ce genre de problème sans faire recours aux curseurs !
    Comment proceder vous avec oracle ?

    Découvrez la FAQ de MS SQL Server.
    La chance accorde ses faveurs aux esprits avertis !

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    132
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 132
    Points : 75
    Points
    75
    Par défaut
    Ben justement j'utilise les curseurs mais ce n'est franchement pas top.

    Surtout qu'il me semble que les curseurs ne sont franchement pas très conseillés point de vue optimisation.

  5. #5
    Rédacteur
    Avatar de WOLO Laurent
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Mars 2003
    Messages
    2 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Congo-Brazzaville

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2003
    Messages : 2 741
    Points : 4 414
    Points
    4 414
    Par défaut
    Mais sauf qu'ils sont utilisés dans des cas très extrêmes de representation des données !
    Il faut les évités autant que vous le pouvez au cas contraire pas d'autres solutions.
    Par contre, j'aurais bein voulu voir ta solution Oracle pour exiter nos neurones !

    Découvrez la FAQ de MS SQL Server.
    La chance accorde ses faveurs aux esprits avertis !

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    132
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 132
    Points : 75
    Points
    75
    Par défaut
    Bon, j'ai réussi sans les curseurs en utilisant une fonction qui parcours ma table et retourne les champs concaténés.

  7. #7
    Rédacteur
    Avatar de WOLO Laurent
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Mars 2003
    Messages
    2 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Congo-Brazzaville

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2003
    Messages : 2 741
    Points : 4 414
    Points
    4 414
    Par défaut
    Alors, il ne reste plus qu'à marquerle poste résolu.

    Découvrez la FAQ de MS SQL Server.
    La chance accorde ses faveurs aux esprits avertis !

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

Discussions similaires

  1. [SQL SERVER] Utilisation résultat d'une procédure stockée
    Par hwoarang dans le forum Langage SQL
    Réponses: 2
    Dernier message: 30/09/2010, 12h14
  2. Pb de requete SQL avec clauses WHERE dans une procédure stockée
    Par CocoLeNain dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 12/06/2010, 00h48
  3. Réponses: 2
    Dernier message: 17/03/2009, 10h33
  4. [SQL Server 2005] print dans une procédure stockée
    Par anayathefirst dans le forum MS SQL Server
    Réponses: 10
    Dernier message: 21/03/2008, 16h50
  5. [SQL Server] Sous Requete dans le select
    Par Le Singe dans le forum Langage SQL
    Réponses: 2
    Dernier message: 07/11/2006, 10h11

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