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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 66
    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
    22 010
    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 : 22 010
    Billets dans le blog
    6
    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 averti
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 19
    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 confirmé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 66
    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
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 29
    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
    22 010
    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 : 22 010
    Billets dans le blog
    6
    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/ * * * * *

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