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

Langage SQL Discussion :

Probleme a la creation d'une requete SQL


Sujet :

Langage SQL

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Juillet 2008
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Probleme a la creation d'une requete SQL
    Bonjour,
    Je voudrais sélectionner les premières lignes avec des données différentes dans les colonnes A et B...
    Ex:
    A|B|C
    _____
    a|b|azer
    a|c|qsd
    d|b|mkl
    a|b|gfh
    a|b|tyu
    d|b|vbn

    ==> résultat du sélect :

    A|B|C
    _____
    a|b|azer
    a|c|qsd
    d|b|mkl

    Je suis vraiment coincé...

  2. #2
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    8 002
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Spécialiste en bases de données
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2006
    Messages : 8 002
    Points : 30 906
    Points
    30 906
    Billets dans le blog
    16
    Par défaut
    Quelque chose comme cela :

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Select distinct T1.A, T1.B ,T1.C              
    from   T As T1, T As T2
    where  (Select Count(*)
            from   T as T2
            where  T1.A = T2.A 
              And  T1.B = T2.B
              and   T1.C > T2.C) < 1 ;

    Je vous laisse le soin de décortiquer. Cela fait partie de ce que l'on appelle les "Quota queries".
    (a) Faites simple, mais pas plus simple ! (A. Einstein)
    (b) Certes, E=mc², mais si on discute un peu, on peut l’avoir pour beaucoup moins cher... (G. Lacroix, « Les Euphorismes de Grégoire »)
    => La relativité n'existerait donc que relativement aux relativistes (Jean Eisenstaedt, « Einstein et la relativité générale »)

    __________________________________
    Bases de données relationnelles et normalisation : de la première à la sixième forme normale
    Modéliser les données avec MySQL Workbench
    Je ne réponds pas aux questions techniques par MP. Les forums sont là pour ça.

  3. #3
    Membre émérite Avatar de pacmann
    Homme Profil pro
    Consulté Oracle
    Inscrit en
    Juin 2004
    Messages
    1 626
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Consulté Oracle
    Secteur : Distribution

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 626
    Points : 2 845
    Points
    2 845
    Par défaut
    Salut !

    T'es sous quel SGBD ?

    (c'est ma photo)
    Paku, Paku !
    Pour les jeunes incultes : non, je ne suis pas un pokémon...

    Le pacblog : http://pacmann.over-blog.com/

  4. #4
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 774
    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 774
    Points : 52 740
    Points
    52 740
    Billets dans le blog
    5
    Par défaut
    Plus simplement avec les fonctions de fenêtrage :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    CREATE TABLE T (A CHAR(1), B CHAR(1), C VARCHAR(8))
     
    INSERT INTO T VALUES ('a', 'b', 'azer')
    INSERT INTO T VALUES ('a', 'c', 'qsd')
    INSERT INTO T VALUES ('d', 'b', 'mkl')
    INSERT INTO T VALUES ('a', 'b', 'gfh')
    INSERT INTO T VALUES ('a', 'b', 'tyu')
    INSERT INTO T VALUES ('d', 'b', 'vbn')
     
    -- the query :
    SELECT A, B, C
    FROM   (SELECT ROW_NUMBER() OVER(PARTITION BY A, B ORDER BY C) AS N,
                   A, B, C
            FROM   T) AS T0
    WHERE  N = 1
     
    A    B    C
    ---- ---- --------
    a    b    azer
    a    c    qsd
    d    b    mkl
    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. [MySQL] probleme de syntaxe variable dans une requete sql
    Par nico le noob dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 03/09/2010, 13h20
  2. Creation d'une requete SQL
    Par CrazySeb dans le forum Requêtes
    Réponses: 3
    Dernier message: 30/07/2007, 17h06
  3. [MySQL 4.1] probleme d'accents sur une requete SQL
    Par tatayoyo dans le forum Langage SQL
    Réponses: 4
    Dernier message: 10/11/2005, 16h06
  4. probleme d'execution d'une requete sql
    Par rootdaoud dans le forum SGBD
    Réponses: 2
    Dernier message: 13/09/2005, 17h15
  5. probleme lors d'une requete sql (controle non activé)
    Par junty dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 09/09/2005, 15h45

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