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 :

Tri De Donnes


Sujet :

Langage SQL

  1. #1
    Membre du Club Avatar de bodysplash007
    Profil pro
    Étudiant
    Inscrit en
    Février 2007
    Messages
    154
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2007
    Messages : 154
    Points : 58
    Points
    58
    Par défaut Tri De Donnes
    Bonjour

    j'ai une table ESSAI (IdEssai,Photo,Start)
    ou Photo est un VARCHAR et start est un datetime

    J'aimerai obtenir le resultat suivant

    photo | Start
    ----------------------
    bbbbb |12/01/2008
    AAAA |12/01/2007
    ccccc |12/01/2006
    NULL | 12/01/2005
    NULL | 12/01/2004
    NULL | 12/01/2003

    En fait le but du jeu est trier les champs Photo qui n'ont pas la valeur NULL par date Decroissante et de trier les champs photo qui ont la valeur NULL par date décroissante aussi. Je sais y arriver par deux requetes distinctes. Ma Question est :" Est-il possible de regrouper les deux requetes pour n'en faire qu'une seule????"

    Pourriez vous me repondre assez vite


    MERCI

  2. #2
    Membre confirmé
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Mars 2006
    Messages
    400
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur de jeux vidéo

    Informations forums :
    Inscription : Mars 2006
    Messages : 400
    Points : 562
    Points
    562
    Par défaut
    Quelles requêtes utilises-tu ?

  3. #3
    Membre chevronné

    Profil pro
    Inscrit en
    Avril 2005
    Messages
    1 673
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 673
    Points : 1 775
    Points
    1 775
    Par défaut
    Bienvenue !

    Citation Envoyé par bodysplash007
    Pourriez vous me repondre assez vite
    Pourriez-vous respecter les règles du forum en indiquant notamment votre SGBD et sa version ?

    Citation Envoyé par bodysplash007
    En fait le but du jeu est trier les champs Photo qui n'ont pas la valeur NULL par date Decroissante et de trier les champs photo qui ont la valeur NULL par date décroissante aussi
    En résumé vous voulez trier par date décroissante dans ces 2 cas donc votre exemple n'illustre rien ?
    Apparemment, vous voulez surtout que les lignes dont la colonne Photo est NULL soit en fin de tri ; non ?

    PS : attention aux abus de langage : on parle de lignes, colonnes et non d'enregistrements et de champs

  4. #4
    Membre du Club Avatar de bodysplash007
    Profil pro
    Étudiant
    Inscrit en
    Février 2007
    Messages
    154
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2007
    Messages : 154
    Points : 58
    Points
    58
    Par défaut Tri De Donnees
    J utilise SQL SERVER 2005 et son generateur de requete pour m'aider.

    Voici mes requetes:

    Requete 1
    ----------

    SELECT * FROM Essai
    WHERE (PHOTO IS NOT NULL)
    ORDER BY Start DESC

    Celle ci m'affiche par exemple

    Photo | Start
    -------------------
    ccccc | 12/01/2007
    aaaaa | 12/01/2006
    bbbbb | 12/01/2002

    Requete 2
    ----------

    SELECT * FROM Essai
    WHERE (Photo IS NULL)
    ORDER BY Start DESC

    et Celle ci m'affiche

    Photo | Start
    -----------------
    NULL | 12/01/2005
    NULL | 12/01/2004
    NULL | 12/01/2003

    Moi j'aimerai pouvoir avec ces deux requetes n'en faire qu'une, si c'est possible evidemment, Pour afficher

    Photo | Start
    -------------------
    ccccc | 12/01/2007
    aaaaa | 12/01/2006
    bbbbb | 12/01/2002
    NULL | 12/01/2005
    NULL | 12/01/2004
    NULL | 12/01/2003

    MERCI

  5. #5
    Membre chevronné

    Profil pro
    Inscrit en
    Avril 2005
    Messages
    1 673
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 673
    Points : 1 775
    Points
    1 775
    Par défaut
    Quel est le résultat de :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT *
    FROM Essai
    ORDER BY Start DESC
    D'autre part vos parenthèses sont inutiles.

  6. #6
    Membre du Club Avatar de bodysplash007
    Profil pro
    Étudiant
    Inscrit en
    Février 2007
    Messages
    154
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2007
    Messages : 154
    Points : 58
    Points
    58
    Par défaut Tri Des Donnees
    Le resultat le suivant


    Photo | Start
    --------------------
    ccccc | 12/01/2007
    aaaaa | 12/01/2006
    NULL | 12/01/2005
    NULL | 12/01/2004
    NULL | 12/01/2003
    bbbbb | 12/01/2002

  7. #7
    Membre chevronné

    Profil pro
    Inscrit en
    Avril 2005
    Messages
    1 673
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 673
    Points : 1 775
    Points
    1 775
    Par défaut
    Bien que votre exemple est malheureusement ambiguë j'ai une solution qui consiste à ajouter une colonne supplémentaire en passant par une requête UNION :

    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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    10g SOC5> create table dvp(photo varchar2(30), mystart date);
     
    Table créée.
     
    10g SOC5> 
    10g SOC5> insert into dvp values('ccccc', '12/01/2007');
     
    1 ligne créée.
     
    10g SOC5> insert into dvp values('aaaaa', '12/01/2006');
     
    1 ligne créée.
     
    10g SOC5> insert into dvp values(NULL, '12/01/2005');
     
    1 ligne créée.
     
    10g SOC5> insert into dvp values(NULL, '12/01/2004');
     
    1 ligne créée.
     
    10g SOC5> insert into dvp values(NULL, '12/01/2003');
     
    1 ligne créée.
     
    10g SOC5> insert into dvp values('bbbbb', '12/01/2002');
     
    1 ligne créée.
     
    10g SOC5> 
    10g SOC5> SELECT   'A' critere_tri, PHOTO, MYSTART
      2  FROM     DVP
      3  WHERE    PHOTO IS NOT NULL
      4  UNION
      5  SELECT   'B', PHOTO, MYSTART
      6  FROM     DVP
      7  WHERE    PHOTO IS NULL
      8  ORDER BY critere_tri, MYSTART DESC;
     
    C PHOTO                          MYSTART
    - ------------------------------ -------------------
    A ccccc                          12/01/2007 00:00:00
    A aaaaa                          12/01/2006 00:00:00
    A bbbbb                          12/01/2002 00:00:00
    B                                12/01/2005 00:00:00
    B                                12/01/2004 00:00:00
    B                                12/01/2003 00:00:00
     
    6 ligne(s) sélectionnée(s).

  8. #8
    Membre du Club Avatar de bodysplash007
    Profil pro
    Étudiant
    Inscrit en
    Février 2007
    Messages
    154
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2007
    Messages : 154
    Points : 58
    Points
    58
    Par défaut Tri De Donnes
    C'est ce que je pensais faire aussi mais je voulais voir si il y a vait moyen de le faire avec une table seulement je vais voir si mon chef est d'accord et je vais essayer

  9. #9
    Membre chevronné

    Profil pro
    Inscrit en
    Avril 2005
    Messages
    1 673
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 673
    Points : 1 775
    Points
    1 775
    Par défaut
    Il n'y a qu'UNE seule table que j'ai nommée DVP dans mon exemple.
    Le seul élément un tant soit peu contraingnant est qu'il faut utiliser une colonne statique dont la valeur est différente pour chaque partie de la requête UNION.

    Vous comprenez ?

  10. #10
    Membre du Club Avatar de bodysplash007
    Profil pro
    Étudiant
    Inscrit en
    Février 2007
    Messages
    154
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2007
    Messages : 154
    Points : 58
    Points
    58
    Par défaut Tri De Donnes
    Ben je comprends pas très bien votre requete, normalement une requete UNION porte sur 2 tables differentes mais je ne comprend pas très bien le
    SELECT 'A' critere_tri, PHOTO, MYSTART
    A quoi correspond le A?



    Merci d'avance

  11. #11
    Membre chevronné

    Profil pro
    Inscrit en
    Avril 2005
    Messages
    1 673
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 673
    Points : 1 775
    Points
    1 775
    Par défaut
    Hum... ça doit faire 3 fois que je vous explique que j'ajoute une colonne que je nomme critere_tri qui est fixe pour chaque partie de la requête UNION et je m'arrange pour y mettre une valeur de telle sorte qu'en faisant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ORDER BY critere_tri...
    cela me permette d'avoir l'ordre attendu.

    Relisez mes explications et le résultat de la requête => vous constaterez que l'ensemble comprend une colonne nommée colonne_tri valant 'A' PUIS 'B'

    Ok cette fois ?

  12. #12
    Membre du Club Avatar de bodysplash007
    Profil pro
    Étudiant
    Inscrit en
    Février 2007
    Messages
    154
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2007
    Messages : 154
    Points : 58
    Points
    58
    Par défaut Tri De Colonne
    Oui cela marche je l'ai tester


    Merci pour votre aide

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

Discussions similaires

  1. Tri de données dans un tableau
    Par GESCOM2000 dans le forum Contribuez
    Réponses: 6
    Dernier message: 06/12/2006, 15h55
  2. tri des données différent entre 2 bases
    Par j6m dans le forum Oracle
    Réponses: 2
    Dernier message: 12/03/2006, 10h17
  3. gestion et tri de donnée en mémoire
    Par lenectar dans le forum C++
    Réponses: 2
    Dernier message: 05/10/2005, 13h18
  4. [JTable] Tri des données
    Par soulhouf dans le forum Composants
    Réponses: 7
    Dernier message: 08/09/2005, 14h01
  5. [CR9] Tri de données
    Par Madduck dans le forum SAP Crystal Reports
    Réponses: 3
    Dernier message: 24/07/2003, 09h30

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