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] Pbl de requete avec DISTINCT


Sujet :

MS SQL Server

  1. #1
    Membre averti
    Avatar de UNi[FR]
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Juin 2002
    Messages
    340
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information

    Informations forums :
    Inscription : Juin 2002
    Messages : 340
    Points : 448
    Points
    448
    Par défaut [SQL] Pbl de requete avec DISTINCT
    Bonjour à toutes et à tous !! ;0)

    Voila j'ai un probléme avec une requete

    petite présentation des tables avant d'expliquer ma requete

    TABLE1
    TABLE2
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    (PK)id_table2
    (FK)id_table1
    date
    Je souhaite lister distinctement les id_table1 et récupérer en meme temps le dernier id_table2 avec sa date

    j'ai ma requete qui se présente ainsi

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SELECT id_table2 ,  MAX(date), id_table1
    FROM
    	table2
    WHERE 
    	id_table1 IN (SELECT DISTINCT id_table2 FROM table2)
    GROUP BY id_table2 , id_table1
    Mais dans cette requete j'ai des doublons sur mon champ id_table1

    Comment puis-je résoudre mon probléme ??

    merci d'avance pour votre aide
    Gnarf !
    Mon C.V.
    Culture agile && Software Craftsmanship && (.NET {VS 2019 && WPF} || PHP {(PHPStorm || VS Code) && (Docker)})

    Pensez au TAG

  2. #2
    Membre confirmé
    Avatar de jpelaho
    Homme Profil pro
    Consultant ERP
    Inscrit en
    Avril 2006
    Messages
    120
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

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

    Informations forums :
    Inscription : Avril 2006
    Messages : 120
    Points : 487
    Points
    487
    Par défaut
    WHERE
    id_table1 IN (SELECT DISTINCT id_table2 FROM table2)
    Cette condition peut elle être vérifiée ?

    Ensuite ta requete va te donner la plus grande date pour les couples id_table2 , id_table1 . C'est donc normal que tous ces couples soient listés. Le problème restera pour toi de déterminer les couples à retenir (ceux qui ont la plus grande date pour chaque id_table1.

    Tu récuperes d'abord dans une sous/requetes tous les id_table1 avec leur dernier id_table2 (TABLE_C) et ensuite tu fais une jointure avec la table table2 pour y ajouter la Date correspondant au dernier id_table2
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    SELECT TABLE_C.id_table1,TABLE_C.Last_Id_Table2,B.Date
    FROM
    (
    		SELECT A.id_table1,
    		(
    		  SELECT TOP 1 id_table2 
    		  FROM TAble2 
    		  WHERE date=(SELECT TOP 1 MAX(Date) FROM TAble2 WHERE id_table1 = A.id_table1)
    					AND id_table1 = A.id_table1
    		) AS Last_Id_Table2
    		FROM TAble1 A 
    )TABLE_C 
     
     INNER JOIN TAble2 B ON TABLE_C.Last_Id_Table2 = B.id_table2

  3. #3
    Membre averti
    Avatar de UNi[FR]
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Juin 2002
    Messages
    340
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information

    Informations forums :
    Inscription : Juin 2002
    Messages : 340
    Points : 448
    Points
    448
    Par défaut
    Alors la ... je te dis respect ;0)

    tu as à le droit à une sucette !!

    Je vais essayer de bien comprendre ta requete mais je ne savais meme pas qu'on pouvais faire un SELECT dans un FROM

    en tout cas merci beaucoup à toi pour ton aide
    Gnarf !
    Mon C.V.
    Culture agile && Software Craftsmanship && (.NET {VS 2019 && WPF} || PHP {(PHPStorm || VS Code) && (Docker)})

    Pensez au TAG

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

Discussions similaires

  1. requete avec distinct !?
    Par maydarak1 dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 23/06/2010, 12h12
  2. [SQL] - Probleme de requete avec SUM
    Par toxycyty dans le forum Langage SQL
    Réponses: 9
    Dernier message: 05/02/2009, 15h33
  3. Réponses: 2
    Dernier message: 07/08/2008, 12h17
  4. aide sur une requete avec distinct
    Par WELCOMSMAIL dans le forum Langage SQL
    Réponses: 1
    Dernier message: 17/12/2007, 13h29
  5. probleme sur une requete avec DISTINCT
    Par samsso2006 dans le forum Requêtes
    Réponses: 1
    Dernier message: 06/05/2007, 14h35

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