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 :

Retourner uniquement la 1ere ligne dans une jointure de type liste


Sujet :

MS SQL Server

  1. #1
    Modérateur
    Avatar de sevyc64
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2007
    Messages
    10 191
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 191
    Points : 28 070
    Points
    28 070
    Par défaut Retourner uniquement la 1ere ligne dans une jointure de type liste
    Salut à tous,

    Je butte sur une requette, ou plus exactement une sous requette dans une jointure :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    ...
    LEFT OUTER JOIN (SELECT code, idPrd  FROM TABLE100) t100 ON t100.idPrd=t5.id
    ...
    Mon soucis est que TABLE100 est une liste de code par rapport à un idPrd.
    A l'heure actuelle cette jointure peut me renvoyer plusieurs lignes pour un seul idPrd.
    Je ne sais pas comment l'écrire pour qu'elle ne me renvoie qu'une seule ligne, la première qu'elle trouve pour l'idPrd, pas d'ordre ou de critères particuliers.
    C'est certainement un truc tout con, qu'il me semble avoir déjà fait en plus, mais comme là, j'ai une somme de problèmes à régler en un temps record, mon cerveau déclare forfait.
    --- Sevyc64 ---

    Parce que le partage est notre force, la connaissance sera notre victoire

  2. #2
    Invité
    Invité(e)
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT top (1) code, idPrd  FROM TABLE100

  3. #3
    Modérateur
    Avatar de sevyc64
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2007
    Messages
    10 191
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 191
    Points : 28 070
    Points
    28 070
    Par défaut
    J'avais essayé rapidement TOP 1, mais il me retournait le premier élément de la table avec donc un idPrd qui ne correspond pas à celui que je cherche.

    En fait il me faudra le premier élément de chaque idPrd que je puisse faire la jointure ensuite.
    A moins qu'il soit possible de passer l'idPrd recherché pour s'en servir de filtre dans la sous requette ?
    --- Sevyc64 ---

    Parce que le partage est notre force, la connaissance sera notre victoire

  4. #4
    Modérateur
    Avatar de sevyc64
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2007
    Messages
    10 191
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 191
    Points : 28 070
    Points
    28 070
    Par défaut
    Quand je disais que c'était tout con

    C'est bien à priori avec un TOP 1, encore faut-il le placer correctement (c'est pas dans la jointure, mais dans les champs retournés).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    SELECT 
    ......,
    (SELECT TOP 1 code FROM TABLE100 t100 WHERE t100.idPrd=t5.id) AS Produit,
    ......,
    ......
    FROM TABLE1 t1
    ......
    INNER JOIN TABLE5 t5 ON .....
    ....
    WHERE ...
    Bon j'ai la chance, dans ce cas que t5.id sera toujours défini puisque jointure interne, je ne sais pas ce que ça donnerais avec une jointure externe.

    Il me reste plus qu'à tester sur la base réelle
    --- Sevyc64 ---

    Parce que le partage est notre force, la connaissance sera notre victoire

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

Discussions similaires

  1. Réponses: 8
    Dernier message: 23/07/2014, 20h55
  2. Retourner à la ligne dans une chaine de caractère
    Par GreatDeveloperOnizuka dans le forum C#
    Réponses: 2
    Dernier message: 12/03/2010, 14h25
  3. Créer une ligne dans une table (en 1ere position)
    Par lipao17 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 12/12/2005, 12h09
  4. Selectionner ligne dans une ClistCtrl
    Par fr66 dans le forum MFC
    Réponses: 2
    Dernier message: 03/05/2004, 15h58
  5. copier une ligne dans une autre table
    Par BoeufBrocoli dans le forum SQL
    Réponses: 5
    Dernier message: 24/10/2003, 23h59

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