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 :

[SQL 2005] ORDER BY ignoré


Sujet :

MS SQL Server

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Février 2005
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 55
    Points : 41
    Points
    41
    Par défaut [SQL 2005] ORDER BY ignoré
    Hello

    Cette requète, triée à partir de la division du champ A par le champ B, fonctionne parfaitement avec Access:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT A,B,C FROM ... WHERE ... ORDER BY (A/B) DESC;
    mais sous SQL Server, le ORDER BY est tout simplement ignoré.
    Avez vous une solution ?

    Merci d'avance

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    72
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Septembre 2006
    Messages : 72
    Points : 75
    Points
    75
    Par défaut
    tu as essayé avec

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT A,B,C, (A/B) as tri FROM ... WHERE ... ORDER BY tri DESC;

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Février 2005
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 55
    Points : 41
    Points
    41
    Par défaut
    Citation Envoyé par mezzo_998
    tu as essayé avec

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT A,B,C, (A/B) as tri FROM ... WHERE ... ORDER BY tri DESC;

    Je viens d'essayer,mais le tri est toujours ignoré. Merci pour l'idée.
    Pour l'instant le tri ne fonctionne que si je ne mets qu'un champ unique derrière ORDER BY.
    Une autre idée ?

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    72
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Septembre 2006
    Messages : 72
    Points : 75
    Points
    75
    Par défaut
    Peux-tu donner le code exact de ta reqête pour voir ?

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Février 2005
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 55
    Points : 41
    Points
    41
    Par défaut
    Voici:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT  stats.wins, stats.lastgamedate, stats.total, Player.PlayerName, stats.player, stats.totalgames 
    FROM Player, stats 
    Where  stats.game="&num&"  AND stats.lastgamedate>="&maxdate&"  AND stats.player=player.IdPlayer 
    ORDER BY (stats.wins/stats.total) DESC;

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Février 2005
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 55
    Points : 41
    Points
    41
    Par défaut
    Pendant que j'y suis , je m'aperçois que j'ai un autre problème du même genre. Cette façon de trier:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ORDER BY (Room>0), PlayerName
    ne fonctionne également que sous Access.

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Février 2005
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 55
    Points : 41
    Points
    41
    Par défaut
    J'utilise le provider SQLNCLI au cas où.

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    72
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Septembre 2006
    Messages : 72
    Points : 75
    Points
    75
    Par défaut
    Essaye avec ça

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    SELECT  stats.wins, stats.lastgamedate, stats.total, Player.PlayerName, stats.player, stats.totalgames, (stats.wins/stats.total) as ordre 
    FROM Player, stats 
    WHERE  stats.game="&num&"  AND stats.lastgamedate>="&maxdate&"  AND stats.player=player.IdPlayer 
    ORDER BY ordre DESC;
    pour ton

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ORDER BY (Room>0), PlayerName
    ça ne peut pas marcher car Room>0 est une condition à mettre dans la clause where. Tu ne peux pas faire de tri dessus.

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Février 2005
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 55
    Points : 41
    Points
    41
    Par défaut
    Citation Envoyé par mezzo_998
    Essaye avec ça

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    SELECT  stats.wins, stats.lastgamedate, stats.total, Player.PlayerName, stats.player, stats.totalgames, (stats.wins/stats.total) as ordre 
    FROM Player, stats 
    WHERE  stats.game="&num&"  AND stats.lastgamedate>="&maxdate&"  AND stats.player=player.IdPlayer 
    ORDER BY ordre DESC;
    C'est comme ta première suggestion ? Je viens de réessayer, sans succès.

    Citation Envoyé par mezzo_998
    pour ton

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ORDER BY (Room>0), PlayerName
    ça ne peut pas marcher car Room>0 est une condition à mettre dans la clause where. Tu ne peux pas faire de tri dessus.
    Ca marche avec Access/JET en tout cas. (Room>0) est interprété comme True ou False et ça permet de faire un 1er tri sur ceux qui ont un Room ou non.

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Février 2005
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 55
    Points : 41
    Points
    41
    Par défaut
    J'ai résolu le pb du ORDER BY (Room>0), PlayerName comme ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ORDER BY CASE WHEN Room=0 THEN PlayerName ELSE '!'+PlayerName END ASC
    Par contre tjrs rien pour l'autre.

  11. #11
    Membre du Club
    Profil pro
    Inscrit en
    Février 2005
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 55
    Points : 41
    Points
    41
    Par défaut
    Bon ca y est: le pb est que le résultat de A/B est interprété comme un entier, donc toujours égal à 0 dans mon cas ( B> A). Il faut rajouter une multiplication par un décimal, pour forcer le moteur à passer en décimal:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     SELECT A,B,C FROM ... WHERE ... ORDER BY 1.0 * A / B DESC
    Merci quand même.

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

Discussions similaires

  1. SQL 2005 Clause ORDER BY dans une vue
    Par Philippe Robert dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 02/10/2011, 18h18
  2. Connexion pages ASP avec server SQL 2005
    Par charabia dans le forum ASP
    Réponses: 10
    Dernier message: 10/02/2006, 14h02
  3. [SQL 2005] Stocker des fichiers
    Par NicoNGRI dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 06/02/2006, 10h05
  4. [ADO.Net][C#/SQL 2005] Comment faire INSERT avec variable ?
    Par hduchemin dans le forum Accès aux données
    Réponses: 1
    Dernier message: 25/01/2006, 17h34
  5. problème sous-requête SQL et order by
    Par aguest dans le forum Requêtes
    Réponses: 10
    Dernier message: 26/12/2005, 23h57

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