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 :

Pb de logique avec ORDER BY de 2 colonnes


Sujet :

Langage SQL

  1. #1
    Membre régulier
    Étudiant
    Inscrit en
    Janvier 2007
    Messages
    76
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2007
    Messages : 76
    Points : 74
    Points
    74
    Par défaut Pb de logique avec ORDER BY de 2 colonnes
    Bonjour,
    J'ai une table qui contient les champs 'ID' int, 'modified' datetime, 'created' datetime.
    Pour les besoin d'un site, je veux afficher les id dont les dates de modified ou created sont les plus proche de la date actuelle. Comme je reprend un code déjà existant, je voudrais uniquement modifier la requête SQL...

    Code simplifié au maximum : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    SELECT id FROM maTable
    WHERE (plein plein de condition)
    ORDER BY created DESC, modified DESC

    Le problème c'est que de cette manière, le tri sur 'modified' se fait dans le résultat du tri de 'created' non?
    comment faire pour que le tri se fasse comme je le désir?

    Merci d'avance

  2. #2
    Membre régulier
    Inscrit en
    Septembre 2006
    Messages
    112
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 112
    Points : 104
    Points
    104
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SELECT id FROM (
     select id, created as date_ref from maTable WHERE (plein plein de condition)
     union
     select id, modified as date_ref from maTable WHERE (plein plein de condition)
     )
    ORDER BY date_ref desc
    ou mieux en mettant tous les champs dont tu as besoin dans les deux sous select pour faire ta condition dans le select global

  3. #3
    Membre régulier
    Étudiant
    Inscrit en
    Janvier 2007
    Messages
    76
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2007
    Messages : 76
    Points : 74
    Points
    74
    Par défaut
    Un truc du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    SELECT id FROM (
     SELECT id, created AS date_ref FROM maTable
     union
     SELECT id, modified AS date_ref FROM maTable  )
    WHERE (plein plein de condition)
    ORDER BY date_ref DESC
    ?

    Et n'est-il pas possible d'adapter pour se faire un truc du genre?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    SELECT id, created AS date_ref,  modified AS date_ref FROM maTable 
    WHERE (plein plein de condition)
    ORDER BY date_ref DESC
    Je chipote là bien sur, c'est pour ma curiosité... Ta première réponse me convient parfaitement.

    Merci beaucoup

  4. #4
    Membre confirmé Avatar de Monstros Velu
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2003
    Messages
    619
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2003
    Messages : 619
    Points : 601
    Points
    601
    Par défaut
    Citation Envoyé par boadog Voir le message
    Et n'est-il pas possible d'adapter pour se faire un truc du genre?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    SELECT id, created AS date_ref,  modified AS date_ref FROM maTable 
    WHERE (plein plein de condition)
    ORDER BY date_ref DESC
    Je chipote là bien sur, c'est pour ma curiosité... Ta première réponse me convient parfaitement.

    Non, ce n'est pas possible.

  5. #5
    Membre expérimenté

    Profil pro
    Inscrit en
    Août 2002
    Messages
    1 060
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 1 060
    Points : 1 357
    Points
    1 357
    Par défaut
    Bonjour,

    Tu modifie la requête de création de l'enreg. : tu mets la date de création dans les 2 champs (création et modification), et pour la lecture, il suffit de rechercher sur le champ de date de modification.

Discussions similaires

  1. problème avec order by et union
    Par ghostdog dans le forum Langage SQL
    Réponses: 8
    Dernier message: 23/05/2006, 09h54
  2. [Tableaux] Trier un tableau comme avec ORDER BY DESC
    Par Anduriel dans le forum Langage
    Réponses: 28
    Dernier message: 08/12/2005, 18h50
  3. [Oracle 10] Bizzareté requête avec order by ??
    Par Eric.H dans le forum Oracle
    Réponses: 12
    Dernier message: 22/06/2005, 12h36
  4. PB avec Order By
    Par Desraux dans le forum SQL
    Réponses: 2
    Dernier message: 15/09/2004, 16h16

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