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 sur deux colonnes


Sujet :

Langage SQL

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    74
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 74
    Points : 53
    Points
    53
    Par défaut tri sur deux colonnes
    Bonjour,

    Voici ma requete :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    SELECT R.ID, R.type, R.nom, R.debut, C.nom AS c_nom, C.date AS c_debut
    FROM client_resa R LEFT OUTER JOIN croisiere C ON(C.ID=R.id_croisiere) 
    WHERE R.id_client=$id
    Je souhaiterais trier mes résultats dans l'ordre croissant des valeurs contenues dans R.debut, et C.date.
    Ces deux valeurs contiennent des timestamp.
    Je précise que je ne veux pas un tri de R.debut puis de C.date, mais bien les deux en meme temps.

    Pouvez - vous m'aider ? Je suis sous mysql.
    Merci d'avance pour votre aide.
    Adr

  2. #2
    Expert confirmé Avatar de Cybher
    Homme Profil pro
    Consultant réseaux et sécurité
    Inscrit en
    Mai 2005
    Messages
    3 281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Consultant réseaux et sécurité
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 281
    Points : 4 644
    Points
    4 644
    Par défaut
    tu peux donner un exemple?
    car les 2 en meme temps, je ne vois pas comment tu veux faire

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    74
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 74
    Points : 53
    Points
    53
    Par défaut
    Merci pour l'intéret que tu portes à ma question.

    En fait chaque enreg a un des deux champs R.debut et C.date de nulle.
    Donc ex:
    Enreg ID=1 : R.debut=0 et C.date=1201863600
    Enreg ID=2 : R.debut=1201863599 et C.date=0
    Enreg ID=3 : R.debut=0 et C.date=1201863601

    En fait je souhaiterais ignorer le 0 et donc classer par ordre croissant :
    Je souhaiterais donc avoir l'ordre suivant :
    ID=2
    ID=1
    ID=3

    Comprends tu ?
    Mais grace à ta question je viens de me rendre compte que ce que je veux faire est surement infaisable, du fait du 0.
    Vois tu quelquechose qui pourrait solutionner mon pb ?

    Merci

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    956
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 956
    Points : 1 199
    Points
    1 199
    Par défaut
    Bonjour,
    Je te propose cela
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT R.ID, R.type, R.nom, R.debut, C.nom AS c_nom, C.date AS c_debut
    FROM client_resa R LEFT OUTER JOIN croisiere C ON(C.ID=R.id_croisiere) 
    WHERE R.id_client=$id 
    order by COALESCE(NULLIF(R.debut,0),C.date )
    Mais je ne sais pas si mysql supporte ces deux fonctions.
    NULLIF transforme certaines valeurs en NULL. Coalesce prend le premier élément non null.
    Sinon tu peux essayer avec un case When, mais je ne sais pas non plus si ça existe sous mysql.

  5. #5
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 786
    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 786
    Points : 52 793
    Points
    52 793
    Billets dans le blog
    5
    Par défaut
    Une date = 0 cela n'existe pas !!!! Quel SGBDR vous propose une telle horreur ???

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

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    74
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 74
    Points : 53
    Points
    53
    Par défaut
    Bonjour,

    En fait, ma valeur timestamp est stocké dans un champ de type Int, d'où la valeur 0 par défaut...

    Pas taper s'il vous plait...

Discussions similaires

  1. [XL-2007] Deux tris sur deux colonnes
    Par DjChat dans le forum Excel
    Réponses: 3
    Dernier message: 07/05/2013, 12h04
  2. DisplayTag Tri sur deux Colonnes ?
    Par waouni dans le forum Développement Web en Java
    Réponses: 0
    Dernier message: 12/04/2012, 10h50
  3. SQl Server tri sur deux colonnes
    Par amine008 dans le forum Développement
    Réponses: 2
    Dernier message: 11/12/2011, 02h50
  4. [DisplayTag] tri sur deux colonnes
    Par JohnnyWalk dans le forum Taglibs
    Réponses: 1
    Dernier message: 03/01/2008, 11h25
  5. [VB6][ListView] Tri sur chaque colonne
    Par frlap dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 26/05/2004, 11h20

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