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 :

select disctinct que sur quelques champs


Sujet :

MS SQL Server

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 66
    Points : 60
    Points
    60
    Par défaut select disctinct que sur quelques champs
    Bonjour,

    je souhaite effectuer un select distinct sur quelques champs, mais que ma requête renvoi aussi d'autres champs qui eux ne font pas partie du distinct

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Select distinct (<champs1>,<champs2>), <champs3>,<champs4>
    from <MaTable>
    les champs entre () sont ceux sur lesquels se porte le distinct

    Cordialement
    Battl14

  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 772
    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 772
    Points : 52 732
    Points
    52 732
    Billets dans le blog
    5
    Par défaut
    Distinct n'est pas une fonction mais un opérateur de dédoubloinnage de lignes. Il n'est donc pas possible de répondre à ta demande qui contrevient à la logique ensembliste des SGBDR...

    Lire l'article que j'ai écrit à ce sujet :
    http://sqlpro.developpez.com/cours/sqlaz/select/#L1.2

    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 à l'essai
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 19
    Points : 22
    Points
    22
    Par défaut
    Bonjour !

    Sinon pourquoi ne pas extraire tes données tout d'abord avec le distinct et après refaire un select total.

    S'il s'agit juste d'une extraction depuis ta table, tu mets ces deux partie dans un Excel (un zéxel pour les intimes) et pis tu fais la concordance...!

    C'est à quel but en faite ?

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 66
    Points : 60
    Points
    60
    Par défaut
    Bonjour,
    Distinct n'est pas une fonction mais un opérateur de dédoubloinnage de lignes. Il n'est donc pas possible de répondre à ta demande qui contrevient à la logique ensembliste des SGBDR...

    Lire l'article que j'ai écrit à ce sujet :
    http://sqlpro.developpez.com/cours/sqlaz/select/#L1.2

    A +
    SQLpro MySQL est un SGBDR et la structure de la requête suivante retourne le résultat attendu
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT DISTINCT (<champs1>,<champs2>), <champs3>,<champs4>
    FROM <MaTable>
    Je souhaite simplement effectuer la même opération sous SQL Server.

    Cordialement
    Battl14

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 29
    Points : 32
    Points
    32
    Par défaut
    Etonnant !

    Ca te renvoie quoi dans MySQL si tu as ce jeu d'enregistrements :

    A A C V
    A B C D
    A A D C

    Si tu fais un distinct sur le 2 premier champs que mets-tu après dans le cas du A A ?

    Sinon, pour ta question, si tu n'as jamais le cas cité ci-dessous tu peux faire :

    select Champ1, Champ2, Min(Champ3), Min(Champ4)
    from TABLE
    Group By Champ1, Champ2
    ---> Mais, il prendra pour Champ3 et Champ4 la valeur la + petite trouvée.

  6. #6
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 772
    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 772
    Points : 52 732
    Points
    52 732
    Billets dans le blog
    5
    Par défaut
    SELECT DISTINCT (<champs1>,<champs2>), <champs3>,<champs4>
    FROM <MaTable>
    Cela fait partie des DÉBILITÉS monstrueuses de ce pseudo SGBDR !!!

    Désolé, mais travaillez plustôt en Cobol que d'utiliser un SGBDR ou alors utilisez un vrai SGBDR et apprenez le langage SQL !!!

    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/ * * * * *

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 66
    Points : 60
    Points
    60
    Par défaut
    Bonjour,

    C'est beau d'accepter la diversité de compétence et d'outils, cela fait vraiment preuve d'une grande intelligence de la part de quelques revendicateurs qui veulent imposer leur vision des choses sans en expliquer le contenu.
    DES FAITS FONT DES PREUVES? DES AVIS SONT DES INTERPRETATIONS DE FAIT!
    Alors SQLpro garde ton sectarisme pour ton auditoire et apporte des arguments à t'es propos plutôt que de vouloir imposer ton point de vu.

    COMPRENDRE C'EST APPRENDRE !!!

    Cordialement
    Battl14

    Citation Envoyé par SQLpro
    Cela fait partie des DÉBILITÉS monstrueuses de ce pseudo SGBDR !!!

    Désolé, mais travaillez plustôt en Cobol que d'utiliser un SGBDR ou alors utilisez un vrai SGBDR et apprenez le langage SQL !!!

    A +

Discussions similaires

  1. Faire un SELECT de type "tant que" sur un champs
    Par RPGamer dans le forum Requêtes
    Réponses: 6
    Dernier message: 17/12/2011, 15h33
  2. Select et unicité sur un champs précis
    Par Ldoppea dans le forum Requêtes
    Réponses: 5
    Dernier message: 31/08/2009, 12h17
  3. SELECT Recherche multiple sur un champs
    Par devjcc dans le forum Requêtes
    Réponses: 3
    Dernier message: 02/06/2009, 15h23
  4. Select sans doublon sur un champ
    Par Carnot dans le forum Langage SQL
    Réponses: 3
    Dernier message: 01/10/2007, 22h36
  5. Réponses: 15
    Dernier message: 24/04/2007, 19h36

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