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

Développement SQL Server Discussion :

Récupérer les lignes d'un tableau si elles contiennent 1 ligne


Sujet :

Développement SQL Server

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2019
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2019
    Messages : 5
    Points : 4
    Points
    4
    Par défaut Récupérer les lignes d'un tableau si elles contiennent 1 ligne
    Bonjour !


    J'ai besoin d'aide pour effectuer une requête SQL. Je ne pense pas que ce soit très difficile mais mes connaissances en SQL sont assez limités !

    J'ai fait des tableaux pour que ce soit plus simple !

    Nom : tableaupourforum.jpg
Affichages : 113
Taille : 23,9 Ko

    Pour faire simple :
    - Table2.col1 sont des parties. Chaque partie est associé à une lettre "x, y, ou z".
    - Table1.col1 sont les parties. Table1.col2 sont des actions.

    Traduit en français, le tableau 1 signifie :

    Dans la partie 1, on fait les actions A B et C.
    Dans la partie 2, on fait les actions A B et B.
    Dans la partie 3 on fait les actions A A et C.
    Dans la partie 4, on fait les actions B et C.


    Ce que j'aimerai faire, c'est une requête qui me dit littéralement :
    "Récupère toutes les lignes de Table1 où les parties contiennent l'action C et sont associés à la lettre x."

    J'aimerai donc récupérer très exactement :


    Nom : result.jpg
Affichages : 98
Taille : 7,2 Ko



    Merci d'avance pour votre aide !

    Stalki.

  2. #2
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 080
    Points : 30 803
    Points
    30 803
    Par défaut
    Qu'as-tu déjà essayé ?
    Où rencontres-tu un problème ?

    Une piste : EXISTS
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2019
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2019
    Messages : 5
    Points : 4
    Points
    4
    Par défaut
    Bonjour al1_24 et merci pour ta réponse !

    J'arrive à faire la moitié de ce que je veux en fait :

    "Récupère toutes les lignes de Table1 où les parties contiennent l'action C et sont associés à la lettre x."

    En faisant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM Table1 INNER JOIN Table2 ON Table1.col1 = Table2.col1 WHERE Table2.col2= "x"

    Le problème c'est que je n'arrive pas à traiter partie par partie dans la Table1, vu qu'il y a plusieurs lignes par parties.... Mais je veux garder toutes les lignes pour le résultat de ma requête finale !


    Je vais regarder pour EXISTS, merci !

  4. #4
    Modérateur

    Profil pro
    dba
    Inscrit en
    Janvier 2010
    Messages
    5 643
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : dba

    Informations forums :
    Inscription : Janvier 2010
    Messages : 5 643
    Points : 13 092
    Points
    13 092
    Par défaut
    bonjour

    Quelque chose comme ceci (pas testé)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    SELECT col1, col2
    FROM (
    	SELECT Table1.col1, Table1.col2,   MAX(CASE WHEN Table1.col2 = 'C' THEN 1 ELSE 0 END) OVER (PARTITION BY Table1.col1) AS HasC
    	FROM Table1 
    	INNER JOIN Table2 
    		ON Table1.col1 = Table2.col1 
    	WHERE Table2.col2= 'x'
    	) AS T
    WHERE HasC = 1

Discussions similaires

  1. Réponses: 2
    Dernier message: 03/06/2011, 20h29
  2. Réponses: 5
    Dernier message: 20/07/2007, 15h15
  3. Réponses: 8
    Dernier message: 30/11/2006, 18h32
  4. récupérer les doublons d'un tableau
    Par stoyak dans le forum Langage
    Réponses: 4
    Dernier message: 11/05/2006, 11h50
  5. [javascript] récupérer les "clés" d'un tableau
    Par LE NEINDRE dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 20/02/2006, 10h13

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